/**
 * Domain Types: AnalyticsSnapshot
 *
 * Pure type/config definitions used by the AnalyticsSnapshot entity.
 * Kept in domain/types so domain/entities contains only entity classes.
 */

export type SnapshotPeriod = 'daily' | 'weekly' | 'monthly';

export type SnapshotEntityType = 'league' | 'driver' | 'team' | 'race' | 'sponsor';

export interface AnalyticsMetrics {
  pageViews: number;
  uniqueVisitors: number;
  avgSessionDuration: number;
  bounceRate: number;
  engagementScore: number;
  sponsorClicks: number;
  sponsorUrlClicks: number;
  socialShares: number;
  leagueJoins: number;
  raceRegistrations: number;
  exposureValue: number;
}

export interface AnalyticsSnapshotProps {
  id: string;
  entityType: SnapshotEntityType;
  entityId: string;
  period: SnapshotPeriod;
  startDate: Date;
  endDate: Date;
  metrics: AnalyticsMetrics;
  createdAt: Date;
}