export type PracticeStatus = 'PROCESSING' | 'COMPLETED' | 'FAILED' | string;

export interface PracticeVerse {
  id: string;
  chapterId: string;
  number: number;
  arabicText: string;
  latinText: string;
  latinPesantren?: string;
  translation: string;
}

export interface PracticeAiScore {
  id: string;
  transcription: string;
  metrics: Record<string, unknown>;
  finalScore: number;
  feedback: string;
}

export interface PracticeSubmissionRef {
  id: string;
  status: string;
  submittedAt: string;
}

export interface Practice {
  id: string;
  studentId: string;
  verseId: string;
  audioUrl: string;
  durationSeconds: number;
  status: PracticeStatus;
  recordedAt: string;
  verse: PracticeVerse;
  aiScore: PracticeAiScore | null;
  submission?: PracticeSubmissionRef | null;
}

export interface CreatePracticeRequest {
  verseId: string;
  audio: File | Blob;
  durationSeconds: number;
}
