export interface CacSigninRequest {
  username: string;
  password: string;
}

export interface CacSigninResponse {
  id: number;
  username: string;
  email: string;
  accessToken: string;
  tokenType: string;
}

export interface CacPaymentInitiateRequest {
  app_key: string;
  api_key: string;
  customer_mobile: string;
  currency: string;
  desc?: string;
  vender_ref?: string;
  amount: number;
  company_services_id: number;
}

export interface CacPaymentInitiateResponse {
  description: string;
  paymentRequestId: number;
}

export interface CacPaymentConfirmRequest {
  app_key: string;
  api_key: string;
  payment_request_id: number;
  otp: string;
}

export interface CacPaymentConfirmResponse {
  description: string;
  confirmReference: number;
  reference: string;
}

export interface CacGetPaymentByReferenceRequest {
  app_key: string;
  api_key: string;
  reference: string;
}

export interface CacPaymentByReferenceResponse {
  description: string;
  customerName?: string;
  reference: string;
  amount: number;
  transactionDate: string;
  transactionNo: number;
}

export interface CacConfirmResult {
  status: "SUCCEEDED" | "FAILED";
  providerTxnId?: string;
  reference?: string;
  failureCode?: string;
  failureMessage?: string;
  rawResponse: Record<string, unknown>;
}
