@robotical/appv2-analytics-gatherer
Version:
A tool that gathers data from the Apps and sends it to the Analytics server
170 lines (169 loc) • 7.53 kB
TypeScript
export declare enum VisitedScreenEnum {
HOME = "home",
ACTIVITIES = "activities",
BLOCKS = "blocks",
BLOCKSJR = "blocksjr",
CONFIG = "config",
SENSORS_DASHBOARD = "sens-dash",
CODEWHEEL = "codewheel",
MAZE = "maze",
JUMPING_GAME = "jumping-game",
ROBOFLY_GAME = "robofly-game",
CONTROLLER = "controller",
CALIBRATION = "calibration",
HELP = "help",
GAMES = "games",
SKIING_GAME = "skiing-game"
}
export type VisitedActivityType = string;
export declare enum HeartbeatTypeEnum {
SESSION = "session",
SCREEN = "screen",
ACTIVITY = "activity"
}
export declare enum ServerEndpoints {
TRACK_CONSENT = "track-consent",
START_SESSION = "start-session",
HEARTBEAT = "heartbeat",
SCREEN_VISIT = "screen-visit",
ACTIVITY_VISIT = "activity-visit",
GET_CONSENT_RAW_DATA = "get-consent-raw-data",
GET_SESSIONS_RAW_DATA = "get-sessions-raw-data",
GET_SESSION_HEARTBEATS_RAW_DATA = "get-session-heartbeats-raw-data",
GET_SCREEN_HEARTBEATS_RAW_DATA = "get-screen-heartbeats-raw-data",
GET_SCREEN_VISITS_RAW_DATA = "get-screen-visits-raw-data",
GET_ACTIVITY_VISITS_RAW_DATA = "get-activity-visits-raw-data",
GET_ACTIVITY_HEARTBEATS_RAW_DATA = "get-activity-heartbeats-raw-data",
GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA = "get-sessions-n-per-week-processed-data",
GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA = "get-unique-devices-n-per-week-processed-data",
GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA = "get-unique-cogs-n-per-week-processed-data",
GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA = "get-unique-martys-n-per-week-processed-data",
GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-screens-frequency-per-week-processed-data",
GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-activities-frequency-per-week-processed-data",
GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-sessions-time-spent-per-week-processed-data",
GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-screens-time-spent-per-week-processed-data",
GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-activities-time-spent-per-week-processed-data"
}
export type DateFilter = {
fromDate: string;
toDate: string;
};
export type ServerEndpointsData = {
[ServerEndpoints.TRACK_CONSENT]: {
consent: boolean;
};
[ServerEndpoints.START_SESSION]: {
sessionId: string;
deviceId: string;
robotId: string;
raftType: string;
createdAt?: string;
};
[ServerEndpoints.HEARTBEAT]: {
id: string;
isNewDoc?: boolean;
type: HeartbeatTypeEnum;
sessionId: string;
screen?: VisitedScreenEnum;
activity?: VisitedActivityType;
createdAt?: string;
lastUpdated?: string;
};
[ServerEndpoints.SCREEN_VISIT]: {
screen: VisitedScreenEnum;
sessionId: string;
deviceId: string;
robotId: string;
raftType: string;
createdAt?: string;
};
[ServerEndpoints.ACTIVITY_VISIT]: {
activity: VisitedActivityType;
sessionId: string;
deviceId: string;
robotId: string;
raftType: string;
createdAt?: string;
};
[ServerEndpoints.GET_CONSENT_RAW_DATA]: {};
[ServerEndpoints.GET_SESSIONS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_SESSION_HEARTBEATS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_SCREEN_HEARTBEATS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_SCREEN_VISITS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_ACTIVITY_VISITS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_ACTIVITY_HEARTBEATS_RAW_DATA]: DateFilter;
[ServerEndpoints.GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
[ServerEndpoints.GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
};
export declare enum FirestoreCollectionsRawEnum {
CONSENTS = "consents",
SESSIONS = "sessions",
SESSION_HEARTBEATS = "sessionHeartbeats",
SCREEN_HEARTBEATS = "screenHeartbeats",
SCREEN_VISITS = "screenVisits",
ACTIVITY_VISITS = "activityVisits",
ACTIVITY_HEARTBEATS = "activityHeartbeats"
}
export declare enum FirestoreCollectionsProcessedEnumLevel1 {
SESSIONS = "sessions",
DEVICES = "devices",
ROBOTS = "robots",
SCREENS = "screens",
ACTIVITIES = "activities",
HEARTBEATS = "heartbeats",
METADATA = "metadata"
}
export declare enum FirestoreCollectionsProcessedEnumLevel2 {
SESSIONS_N_PER_WEEK = "sessionsNPerWeek",
SESSIONS_N_PER_WEEK_METADATA = "sessionsNPerWeekMetadata",
UNIQUE_DEVICES_N_PER_WEEK = "uniqueDevicesNPerWeek",
UNIQUE_DEVICES_N_PER_WEEK_METADATA = "uniqueDevicesNPerWeekMetadata",
VISITED_SCREENS_FREQUENCY_PER_WEEK = "visitedScreensFrequencyPerWeek",
VISITED_SCREENS_FREQUENCY_PER_WEEK_METADATA = "visitedScreensFrequencyPerWeekMetadata",
VISITED_ACTIVITIES_FREQUENCY_PER_WEEK = "visitedActivitiesFrequencyPerWeek",
VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_METADATA = "visitedActivitiesFrequencyPerWeekMetadata",
UNIQUE_COGS_PER_WEEK = "uniqueCogsPerWeek",
UNIQUE_COGS_PER_WEEK_METADATA = "uniqueCogsPerWeekMetadata",
UNIQUE_MARTYS_PER_WEEK = "uniqueMartysPerWeek",
UNIQUE_MARTYS_PER_WEEK_METADATA = "uniqueMartysPerWeekMetadata",
SESSIONS_TIME_SPENT_PER_WEEK = "sessionsTimeSpentPerWeek",
SESSIONS_TIME_SPENT_PER_WEEK_METADATA = "sessionsTimeSpentPerWeekMetadata",
SCREENS_TIME_SPENT_PER_WEEK = "screensTimeSpentPerWeek",
SCREENS_TIME_SPENT_PER_WEEK_METADATA = "screensTimeSpentPerWeekMetadata",
ACTIVITIES_TIME_SPENT_PER_WEEK = "activitiesTimeSpentPerWeek",
ACTIVITIES_TIME_SPENT_PER_WEEK_METADATA = "activitiesTimeSpentPerWeekMetadata"
}
export type FirestoreConsentCountersRawData = {
negativeConsents: number;
positiveConsents: number;
}[];
export type FirestoreSessionsRawData = (Omit<ServerEndpointsData[ServerEndpoints.START_SESSION], 'createdAt'> & {
createdAt: string;
})[];
export type FirestoreScreenVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.SCREEN_VISIT], 'createdAt'> & {
createdAt: string;
})[];
export type FirestoreActivityVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.ACTIVITY_VISIT], 'createdAt'> & {
createdAt: string;
})[];
export type FirestoreSessionHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc'> & {
createdAt: string;
lastUpdated: string;
})[];
export type FirestoreScreenHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'screen'> & {
createdAt: string;
lastUpdated: string;
screen: VisitedScreenEnum;
})[];
export type FirestoreActivityHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'activity'> & {
createdAt: string;
lastUpdated: string;
activity: VisitedActivityType;
})[];