// 事件类型 export enum EventType { CLICK = 'click', REDIRECT = 'redirect', CONVERSION = 'conversion', ERROR = 'error' } // 转化类型 export enum ConversionType { VISIT = 'visit', STAY = 'stay', INTERACT = 'interact', SIGNUP = 'signup', SUBSCRIPTION = 'subscription', PURCHASE = 'purchase' } // 设备类型 export enum DeviceType { MOBILE = 'mobile', TABLET = 'tablet', DESKTOP = 'desktop', OTHER = 'other' } // 标签类型 export interface Tag { id: string; name: string; color?: string; type?: string; attributes?: Record; team_id?: string; } // API 响应基础接口 export interface ApiResponse { success: boolean; data?: T; error?: string; meta?: { total?: number; page?: number; pageSize?: number; }; } // 事件查询参数 export interface EventsQueryParams { startTime?: string; // ISO 格式时间 endTime?: string; // ISO 格式时间 eventType?: EventType; linkId?: string; linkSlug?: string; userId?: string; teamId?: string; teamIds?: string[]; // 团队ID数组,支持多选 projectId?: string; projectIds?: string[]; // 项目ID数组,支持多选 tagIds?: string[]; // 标签ID数组,支持多选 page?: number; pageSize?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; } // 事件基础信息 export interface Event { event_id: string; event_time: string; event_type: EventType; event_attributes: Record; // 链接信息 link_id: string; link_slug: string; link_label: string; link_title: string; link_original_url: string; link_attributes: Record; link_created_at: string; link_expires_at: string | null; link_tags: string[]; // 用户信息 user_id: string; user_name: string; user_email: string; user_attributes: Record; // 团队信息 team_id: string; team_name: string; team_attributes: Record; // 项目信息 project_id: string; project_name: string; project_attributes: Record; // 访问者信息 visitor_id: string; session_id: string; ip_address: string; country: string; city: string; device_type: DeviceType; browser: string; os: string; user_agent: string; // 来源信息 referrer: string; utm_source: string; utm_medium: string; utm_campaign: string; // 交互信息 time_spent_sec: number; is_bounce: boolean; is_qr_scan: boolean; conversion_type: ConversionType; conversion_value: number; } // 事件概览数据 export interface EventsSummary { totalEvents: number; uniqueVisitors: number; totalConversions: number; averageTimeSpent: number; deviceTypes: { mobile: number; desktop: number; tablet: number; other: number; }; browsers: Array<{ name: string; count: number; percentage: number; }>; operatingSystems: Array<{ name: string; count: number; percentage: number; }>; } // 时间序列数据 export interface TimeSeriesData { timestamp: string; events: number; visitors: number; conversions: number; } // 地理位置数据 export interface GeoData { location: string; visits: number; visitors: number; percentage: number; } // 设备分析数据 export interface DeviceAnalytics { deviceTypes: Array<{ type: DeviceType; count: number; percentage: number; }>; browsers: Array<{ name: string; count: number; percentage: number; }>; operatingSystems: Array<{ name: string; count: number; percentage: number; }>; }