diff --git a/eshtek/admin.types.ts b/eshtek/admin.types.ts index 9b87a03..ddecdbe 100644 --- a/eshtek/admin.types.ts +++ b/eshtek/admin.types.ts @@ -19,6 +19,7 @@ export interface CatalogStatusResponse { */ export interface CatalogApp { id: number; + appId: string; name: string; train: string | null; version: string | null; diff --git a/eshtek/events.ts b/eshtek/events.ts index 1bd9788..d0a8bc9 100644 --- a/eshtek/events.ts +++ b/eshtek/events.ts @@ -68,4 +68,69 @@ export interface AppPopularityMetrics { upgradeCount: number; failureCount: number; lastInstalled: Date; +} + +export enum EventsStatsCategory { + TASKS = 'tasks', + USERS = 'users', + TIMELINE = 'timeline', +} + +export interface EventTaskStats { + taskType: string; + total: number; + completed: number; + failed: number; + successRate: number; + avgDurationSeconds: number | null; +} + +export interface EventUserActivity { + userId: string; + totalEvents: number; + lastLogin: string | null; + tasksInitiated: number; + appActions: number; + failures: number; +} + +export interface EventTimeline { + timestamp: string; + eventCount: number; + failures: number; +} + +export type EventsStatsData = + | EventTaskStats + | EventUserActivity + | EventTimeline; + +export type TimelineGroupBy = 'hour' | 'day'; + +export interface EventsListParams { + id?: number | string; + page?: number; + pageSize?: number; + eventName?: string | string[]; + userId?: string; + hostId?: string; + taskType?: string; + taskStatus?: string; + appId?: string; + appIdRaw?: string; + startDate?: string; + endDate?: string; +} + +export interface EventsStatsParams { + type: EventsStatsCategory; + days?: number; + groupBy?: TimelineGroupBy; + userId?: string; + hostId?: string; + taskType?: string; + taskStatus?: string; + appId?: string; + startDate?: string; + endDate?: string; } \ No newline at end of file diff --git a/eshtek/routes.ts b/eshtek/routes.ts index b13b785..ca0395b 100644 --- a/eshtek/routes.ts +++ b/eshtek/routes.ts @@ -23,6 +23,11 @@ export interface PaginationMeta { page_size: number; } +export interface PaginationMetaUnique extends PaginationMeta { + unique_users: number; + unique_servers: number; +} + export interface PaginationRequest { page: number; page_size: number;