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

export type EngagementAction =
  | 'click_sponsor_logo'
  | 'click_sponsor_url'
  | 'download_livery_pack'
  | 'join_league'
  | 'register_race'
  | 'view_standings'
  | 'view_schedule'
  | 'share_social'
  | 'contact_sponsor';

export type EngagementEntityType =
  | 'league'
  | 'driver'
  | 'team'
  | 'race'
  | 'sponsor'
  | 'sponsorship';

export interface EngagementEventProps {
  id: string;
  action: EngagementAction;
  entityType: EngagementEntityType;
  entityId: string;
  actorId?: string;
  actorType: 'anonymous' | 'driver' | 'sponsor';
  sessionId: string;
  metadata?: Record<string, string | number | boolean>;
  timestamp: Date;
}