export type TicketPaymentMethod = 'CASH' | 'TRANSFER' | 'CARD' | 'CREDIT' | 'OTHER';

export interface TicketSaleLine {
  commissionId?: number | null;
  userId: number;
  volume: number;
  productSaleId: number;
  total: number;
}

export interface ReceivableAccountSummary {
  id?: number;
  status?: string;
  totalAmount?: number;
  paidAmount?: number;
  balanceAmount?: number;
  dueDate?: string | null;
  reference?: string | null;
}

export interface ticket {
  id?: number;
  branchId: number;
  createdByUserId?: number;
  payType: number;
  invoiced: boolean;
  uuid?: string | null;
  invoiceDate?: string | null;
  folio: string;
  total?: number;
  amountPaid?: number;
  paymentMethod?: TicketPaymentMethod;
  dueDate?: string | null;
  paymentReference?: string | null;
  notes?: string | null;
  sales?: TicketSaleLine[];
  receivableAccount?: ReceivableAccountSummary | null;
  createdAt?: string;
  updatedAt?: string;
  deletedAt?: string | null;
}

export interface CreateTicketResponse {
  ticket?: ticket;
  receivableAccount?: ReceivableAccountSummary | null;
  receivable?: ReceivableAccountSummary | null;
  id?: number;
  folio?: string;
  total?: number;
  amountPaid?: number;
  paymentMethod?: TicketPaymentMethod;
}
