export interface ServiceDocumentRequirement {
  id: string;
  name: string;
  isRequired: boolean;
}

export interface ServiceOption {
  id: string;
  name: string;
  category: string;
  price: string;
  description?: string;
}

export interface ServiceDetail extends ServiceOption {
  serviceDocuments: ServiceDocumentRequirement[];
}

export interface TaskDocument {
  id: string;
  fileName: string;
  fileUrl: string;
  fileType?: string;
  fileSizeKb?: number;
  status: string;
  serviceDocument?: { id: string; name: string } | null;
  createdAt: string;
  aiVerificationNotes?: string;
}

export interface TaskPayment {
  id: string;
  amount: string;
  method: string;
  status: string;
  transactionRef?: string;
  paidAt?: string;
  createdAt: string;
}

export interface TaskInvoice {
  id: string;
  invoiceNumber: string;
  status: string;
  totalAmount: string;
  payments?: TaskPayment[];
}

export interface Task {
  id: string;
  title: string;
  description?: string;
  status: string;
  priority: string;
  dueDate?: string;
  createdAt: string;
  service: ServiceOption;
  documents?: TaskDocument[];
  invoice?: TaskInvoice | null;
}

// export interface CreateTaskWithDocsResult {
//   task: Task;
//   missingRequiredDocuments: { id: string; name: string }[];
// }

export interface CreateTaskWithDocsResult {
  task: Task;
}
