skip-event-bridge
Version:
Event bridge to partner tracking SDKs
277 lines (209 loc) • 8.96 kB
text/typescript
/* eslint-disable @typescript-eslint/no-explicit-any */
export type Gender = 'M' | 'F';
export type Platform = 'ios' | 'android';
export type UserAction = 'Accepted' | 'Declined';
export type StatusProps = 'Success' | 'Fail';
export type LoginProps = StatusProps;
export type ErrorHandler = (nameProvider: string, err: Error) => void;
export type LoggerHandler = (nameProvider: string, methodName: string) => void;
export type ProviderMethod = (payload: any) => void;
export type Actor = 'Skip' | 'Customer';
export type ActionMethod = 'Chosen' | 'Added New';
export type BusinessUnit = 'Loja' | 'Loja Fisíca' | 'Clube';
export type Stores = 'Play store' | 'Apple store';
export type Thumbs = 'up' | 'down';
export type DiscountType = 'cash' | 'percent';
export type Change = 'Upgrade' | 'Downgrade';
export type Confirmation = 'Yes' | 'No';
export type MembershipType = 'Free' | 'Premium' | 'Vip' | 'Plus';
export interface EventSdk {
tryAppReviewed(payload: any, ids: Array<string>): void;
tryCharged(payload: any, ids: Array<string>): void;
tryDeepLinkClicked(payload: any, ids: Array<string>): void;
tryDeepLinkOpened(payload: any, ids: Array<string>): void;
tryLogin(payload: LoginStatus, ids: Array<string>): void;
tryLogout(payload: any, ids: Array<string>): void;
tryOnUserLogin(payload: any, ids: Array<string>): void;
tryOnUserSelectReasons(payload: any, ids: Array<string>): void;
trySetUserLocation(payload: any, ids: Array<string>): void;
tryUpdateFCMtoken(payload: any, ids: Array<string>): void;
tryUserClicksSignUp(payload: any, ids: Array<string>): void;
tryVisitsHomePage(payload: any, ids: Array<string>): void;
tryVisitsJoinPage(payload: any, ids: Array<string>): void;
tryVisitsPremiumPage(payload: any, ids: Array<string>): void;
tryVisitsFreePage(payload: any, ids: Array<string>): void;
tryVisitsOnboarding(payload: any, ids: Array<string>): void;
tryVisitsDashboard(payload: any, ids: Array<string>): void;
tryVisitsBusinessProfile(payload: any, ids: Array<string>): void;
tryVisitsRemindersPage(payload: any, ids: Array<string>): void;
tryUserCompletesBusinessProfile(payload: any, ids: Array<string>): void;
tryUserClickTodoItem(payload: any, ids: Array<string>): void;
tryUserConfirmsSubscription(payload: any, ids: Array<string>): void;
tryUserScheduledOnboardingCall(payload: any, ids: Array<string>): void;
tryUserFeaturedBusinessOnSkip(payload: any, ids: Array<string>): void;
tryAccountCreated(payload: any, ids: Array<string>): void;
tryAccountCreatedError(payload: any, ids: Array<string>): void;
tryClickedAnnual(payload: any, ids: Array<string>): void;
tryClickedAutoSubCheckbox(payload: any, ids: Array<string>): void;
tryClickedCardNumberField(payload: any, ids: Array<string>): void;
tryClickedCheckAvailability(payload: any, ids: Array<string>): void;
tryClickedConfirm(payload: any, ids: Array<string>): void;
tryClickedContinuetoDashboard(payload: any, ids: Array<string>): void;
tryClickedDownloadApp(payload: any, ids: Array<string>): void;
tryClickedFunding(payload: any, ids: Array<string>): void;
tryClickedLogin(payload: any, ids: Array<string>): void;
tryClickedMonthly(payload: any, ids: Array<string>): void;
tryClickedPrivacyPolicy(payload: any, ids: Array<string>): void;
tryClickedReferralEmailField(payload: any, ids: Array<string>): void;
tryClickedReviewReadMore(payload: any, ids: Array<string>): void;
tryClickedSaveNewPassword(payload: any, ids: Array<string>): void;
tryClickedSendInvites(payload: any, ids: Array<string>): void;
tryClickedTermsandConditions(payload: any, ids: Array<string>): void;
tryPaymentVerifiedError(payload: any, ids: Array<string>): void;
tryPaymentVerifiedSuccess(payload: any, ids: Array<string>): void;
trySaveNewPasswordError(payload: any, ids: Array<string>): void;
tryViewedCalendlyCalendar(payload: any, ids: Array<string>): void;
tryViewedNewPasswordPage(payload: any, ids: Array<string>): void;
tryViewedPaymentInfo(payload: any, ids: Array<string>): void;
tryViewedPlusPage(payload: any, ids: Array<string>): void;
tryViewedPremiumConciergePage(payload: any, ids: Array<string>): void;
tryViewedPlatinumConciergePage(payload: any, ids: Array<string>): void;
// plop EventSdk
tryAddedLoanApplicationTracking(payload: any, ids: Array<string>): void;
tryClickedServiceFlow(payload: any, ids: Array<string>): void;
tryUpgradedFromAccountDetails(payload: any, ids: Array<string>): void;
tryUpgradedFromLatestFundingOpportunity(payload: any, ids: Array<string>): void;
tryAddedFundingGoal(payload: any, ids: Array<string>): void;
tryClickOnBlog(payload: any, ids: Array<string>): void;
tryNotInterestedInFundingOpportunity(payload: any, ids: Array<string>): void;
trySharedReferralLink(payload: any, ids: Array<string>): void;
tryExitedAddBusinessModal(payload: any, ids: Array<string>): void;
tryAddedBusiness(payload: any, ids: Array<string>): void;
tryInvitesAFriend(payload: any, ids: Array<string>): void;
}
export interface Provider {
appReviewed?: ProviderMethod;
charged?: ProviderMethod;
deepLinkClicked?: ProviderMethod;
deepLinkOpened?: ProviderMethod;
login?: ProviderMethod;
logout?: ProviderMethod;
onUserLogin?: ProviderMethod;
onUserSelectReasons?: ProviderMethod;
setUserLocation?: ProviderMethod;
updateFCMtoken?: ProviderMethod;
visitsHomePage?: ProviderMethod;
visitsJoinPage?: ProviderMethod;
visitsPremiumPage?: ProviderMethod;
visitsFreePage?: ProviderMethod;
visitsOnboarding?: ProviderMethod;
visitsDashboard?: ProviderMethod;
visitsBusinessProfile?: ProviderMethod;
visitsRemindersPage?: ProviderMethod;
userClicksSignUp: ProviderMethod;
userCompletesBusinessProfile: ProviderMethod;
userClickTodoItem: ProviderMethod;
userConfirmsSubscription: ProviderMethod;
userScheduledOnboardingCall: ProviderMethod;
userFeaturedBusinessOnSkip: ProviderMethod;
accountCreated: ProviderMethod;
accountCreatedError: ProviderMethod;
clickedAnnual: ProviderMethod;
clickedAutoSubCheckbox: ProviderMethod;
clickedCardNumberField: ProviderMethod;
clickedCheckAvailability: ProviderMethod;
clickedConfirm: ProviderMethod;
clickedContinuetoDashboard: ProviderMethod;
clickedDownloadApp: ProviderMethod;
clickedFunding: ProviderMethod;
clickedLogin: ProviderMethod;
clickedMonthly: ProviderMethod;
clickedPrivacyPolicy: ProviderMethod;
clickedReferralEmailField: ProviderMethod;
clickedReviewReadMore: ProviderMethod;
clickedSaveNewPassword: ProviderMethod;
clickedSendInvites: ProviderMethod;
clickedTermsandConditions: ProviderMethod;
paymentVerifiedError: ProviderMethod;
paymentVerifiedSuccess: ProviderMethod;
saveNewPasswordError: ProviderMethod;
viewedCalendlyCalendar: ProviderMethod;
viewedNewPasswordPage: ProviderMethod;
viewedPaymentInfo: ProviderMethod;
viewedPlusPage: ProviderMethod;
viewedPremiumConciergePage: ProviderMethod;
viewedPlatinumConciergePage: ProviderMethod;
// plop provider
addedLoanApplicationTracking: ProviderMethod;
clickedServiceFlow: ProviderMethod;
upgradedFromAccountDetails: ProviderMethod;
upgradedFromLatestFundingOpportunity: ProviderMethod;
addedFundingGoal: ProviderMethod;
clickOnBlog: ProviderMethod;
notInterestedInFundingOpportunity: ProviderMethod;
sharedReferralLink: ProviderMethod;
exitedAddBusinessModal: ProviderMethod;
addedBusiness: ProviderMethod;
invitesAFriend: ProviderMethod;
}
export type ProviderAttr = keyof Provider;
interface DeviceType {
channel?: string;
}
export interface Action extends DeviceType {
action?: string;
}
export interface DeepLink extends DeviceType {
url: string;
success: boolean;
}
export interface Location extends DeviceType {
latitude: number;
longitude?: number;
}
export interface LoginStatus extends DeviceType {
status: StatusProps;
}
export interface Product extends DeviceType {
title?: string;
description: string;
sku?: string;
}
export interface Order extends DeviceType {
business_unit?: BusinessUnit;
cart_id?: number;
order_id?: number;
// THIS NAME IS CLEVERTAP MANDATORY. DON'T REMOVE OR CHANGE THIS
Items?: Product[];
}
export interface UserProfile extends DeviceType {
Uid?: string;
Identity?: string;
Name?: string;
Last_name?: string;
Email?: string;
UserEmail?: string;
Phone?: string;
DOB?: Date;
Gender?: Gender;
Photo?: string;
Email_Verified?: boolean;
Onboarding_Reasons?: string[];
Onboarding_Reasons_Id?: string[];
Membership_Type?: MembershipType;
}
export interface AppReview extends DeviceType {
store: Stores;
thumbs: Thumbs;
body?: string;
}
export interface PageVisited {
Current_Page?: string;
}
export interface TodoItemType {
TodoType?: string;
}
export interface UserConfirmsSubscription {
Selected_Plan?: string;
Current_Page?: string;
}