/**
 * Track Types
 * T0260: Types TypeScript pour les tracks et l'upload
 */

export type TrackStatus = 'uploading' | 'processing' | 'completed' | 'failed';

export interface Track {
  id: string;
  creator_id: string;
  file_id?: string;
  title: string;
  artist: string;
  album?: string;
  duration: number;
  genre?: string;
  year?: number;
  file_path: string;
  file_size: number;
  format: string;
  bitrate?: number;
  sample_rate?: number;
  waveform_path?: string;
  cover_art_path?: string;
  is_public: boolean;
  play_count: number;
  like_count: number;
  status?: TrackStatus;
  status_message?: string;
  stream_status?: string;
  stream_manifest_url?: string;
  created_at: string;
  updated_at: string;
}

export interface UploadProgress {
  track_id: string;
  status: TrackStatus;
  progress: number;
  message?: string;
  stream_status?: string;
  stream_manifest_url?: string;
}
