/**
 * Activity Item View Model
 *
 * View model for recent activity items.
 */
export class ActivityItemViewModel {
  id: string;
  type: 'race' | 'league' | 'team' | 'driver' | 'platform';
  message: string;
  time: string;
  impressions?: number;

  constructor(data: any) {
    this.id = data.id;
    this.type = data.type;
    this.message = data.message;
    this.time = data.time;
    this.impressions = data.impressions;
  }

  get typeColor(): string {
    const colors = {
      race: 'bg-warning-amber',
      league: 'bg-primary-blue',
      team: 'bg-purple-400',
      driver: 'bg-performance-green',
      platform: 'bg-racing-red',
    };
    return colors[this.type] || 'bg-gray-500';
  }

  get formattedImpressions(): string | null {
    return this.impressions ? this.impressions.toLocaleString() : null;
  }
}