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

export enum EntityType {
  LEAGUE = 'league',
  DRIVER = 'driver',
  TEAM = 'team',
  RACE = 'race',
  SPONSOR = 'sponsor',
}

export enum VisitorType {
  ANONYMOUS = 'anonymous',
  DRIVER = 'driver',
  SPONSOR = 'sponsor',
}

export interface PageViewProps {
  id: string;
  entityType: EntityType;
  entityId: string;
  visitorId?: string;
  visitorType: VisitorType;
  sessionId: string;
  referrer?: string;
  userAgent?: string;
  country?: string;
  timestamp: Date;
  durationMs?: number;
}