/** Types generated for queries found in "src/modules/deel/providers/deel-invoices.provider.ts" */
export type currency = 'AUD' | 'CAD' | 'ETH' | 'EUR' | 'GBP' | 'GRT' | 'ILS' | 'JPY' | 'SEK' | 'USD' | 'USDC';

export type DateOrString = Date | string;

export type NumberOrString = number | string;

/** 'GetInvoicesByIssueDates' parameters type */
export interface IGetInvoicesByIssueDatesParams {
  from?: DateOrString | null | void;
  to?: DateOrString | null | void;
}

/** 'GetInvoicesByIssueDates' return type */
export interface IGetInvoicesByIssueDatesResult {
  adjustment: string;
  amount: string;
  approve_date: Date | null;
  approvers: string | null;
  bonus: string;
  commissions: string;
  contract_country: string | null;
  contract_id: string | null;
  contract_start_date: Date | null;
  contract_type: string | null;
  contractor_email: string | null;
  contractor_employee_name: string;
  contractor_unique_identifier: string | null;
  created_at: Date;
  currency: string;
  deductions: string;
  deel_fee: string;
  document_id: string | null;
  due_date: Date;
  expenses: string;
  frequency: string | null;
  general_ledger_account: string | null;
  group_id: string | null;
  id: string;
  is_overdue: boolean;
  issued_at: Date;
  label: string;
  others: string;
  overtime: string;
  owner_id: string;
  paid_at: Date;
  payment_currency: currency;
  payment_id: string;
  pro_rata: string;
  processing_fee: string;
  recipient_legal_entity_id: string | null;
  status: string;
  total: string;
  total_payment_currency: string;
  vat_id: string | null;
  vat_percentage: string | null;
  vat_total: string | null;
  work: string;
}

/** 'GetInvoicesByIssueDates' query type */
export interface IGetInvoicesByIssueDatesQuery {
  params: IGetInvoicesByIssueDatesParams;
  result: IGetInvoicesByIssueDatesResult;
}

/** 'GetInvoicesByIds' parameters type */
export interface IGetInvoicesByIdsParams {
  ids: readonly (string | null | void)[];
}

/** 'GetInvoicesByIds' return type */
export interface IGetInvoicesByIdsResult {
  adjustment: string;
  amount: string;
  approve_date: Date | null;
  approvers: string | null;
  bonus: string;
  commissions: string;
  contract_country: string | null;
  contract_id: string | null;
  contract_start_date: Date | null;
  contract_type: string | null;
  contractor_email: string | null;
  contractor_employee_name: string;
  contractor_unique_identifier: string | null;
  created_at: Date;
  currency: string;
  deductions: string;
  deel_fee: string;
  document_id: string | null;
  due_date: Date;
  expenses: string;
  frequency: string | null;
  general_ledger_account: string | null;
  group_id: string | null;
  id: string;
  is_overdue: boolean;
  issued_at: Date;
  label: string;
  others: string;
  overtime: string;
  owner_id: string;
  paid_at: Date;
  payment_currency: currency;
  payment_id: string;
  pro_rata: string;
  processing_fee: string;
  recipient_legal_entity_id: string | null;
  status: string;
  total: string;
  total_payment_currency: string;
  vat_id: string | null;
  vat_percentage: string | null;
  vat_total: string | null;
  work: string;
}

/** 'GetInvoicesByIds' query type */
export interface IGetInvoicesByIdsQuery {
  params: IGetInvoicesByIdsParams;
  result: IGetInvoicesByIdsResult;
}

/** 'GetChargeIdsByPaymentIds' parameters type */
export interface IGetChargeIdsByPaymentIdsParams {
  paymentIds: readonly (string | null | void)[];
}

/** 'GetChargeIdsByPaymentIds' return type */
export interface IGetChargeIdsByPaymentIdsResult {
  charge_id: string | null;
  payment_id: string;
}

/** 'GetChargeIdsByPaymentIds' query type */
export interface IGetChargeIdsByPaymentIdsQuery {
  params: IGetChargeIdsByPaymentIdsParams;
  result: IGetChargeIdsByPaymentIdsResult;
}

/** 'GetReceiptToCharge' parameters type */
export type IGetReceiptToChargeParams = void;

/** 'GetReceiptToCharge' return type */
export interface IGetReceiptToChargeResult {
  charge_id: string | null;
  payment_id: string;
}

/** 'GetReceiptToCharge' query type */
export interface IGetReceiptToChargeQuery {
  params: IGetReceiptToChargeParams;
  result: IGetReceiptToChargeResult;
}

/** 'InsertDeelInvoiceRecords' parameters type */
export interface IInsertDeelInvoiceRecordsParams {
  adjustment?: NumberOrString | null | void;
  amount?: NumberOrString | null | void;
  approveDate?: DateOrString | null | void;
  approvers?: string | null | void;
  bonus?: NumberOrString | null | void;
  commissions?: NumberOrString | null | void;
  contractCountry?: string | null | void;
  contractId?: string | null | void;
  contractorEmail?: string | null | void;
  contractorEmployeeName?: string | null | void;
  contractorUniqueIdentifier?: string | null | void;
  contractStartDate?: DateOrString | null | void;
  contractType?: string | null | void;
  createdAt?: DateOrString | null | void;
  currency?: string | null | void;
  deductions?: NumberOrString | null | void;
  deelFee?: NumberOrString | null | void;
  documentId?: string | null | void;
  dueDate?: DateOrString | null | void;
  expenses?: NumberOrString | null | void;
  frequency?: string | null | void;
  generalLedgerAccount?: string | null | void;
  groupId?: string | null | void;
  id?: string | null | void;
  isOverdue?: boolean | null | void;
  issuedAt?: DateOrString | null | void;
  label?: string | null | void;
  others?: NumberOrString | null | void;
  overtime?: NumberOrString | null | void;
  ownerId?: string | null | void;
  paidAt?: DateOrString | null | void;
  paymentCurrency?: currency | null | void;
  paymentId?: string | null | void;
  processingFee?: NumberOrString | null | void;
  proRata?: NumberOrString | null | void;
  recipientLegalEntityId?: string | null | void;
  status?: string | null | void;
  total?: NumberOrString | null | void;
  totalPaymentCurrency?: NumberOrString | null | void;
  vatId?: string | null | void;
  vatPercentage?: string | null | void;
  vatTotal?: NumberOrString | null | void;
  work?: NumberOrString | null | void;
}

/** 'InsertDeelInvoiceRecords' return type */
export interface IInsertDeelInvoiceRecordsResult {
  adjustment: string;
  amount: string;
  approve_date: Date | null;
  approvers: string | null;
  bonus: string;
  commissions: string;
  contract_country: string | null;
  contract_id: string | null;
  contract_start_date: Date | null;
  contract_type: string | null;
  contractor_email: string | null;
  contractor_employee_name: string;
  contractor_unique_identifier: string | null;
  created_at: Date;
  currency: string;
  deductions: string;
  deel_fee: string;
  document_id: string | null;
  due_date: Date;
  expenses: string;
  frequency: string | null;
  general_ledger_account: string | null;
  group_id: string | null;
  id: string;
  is_overdue: boolean;
  issued_at: Date;
  label: string;
  others: string;
  overtime: string;
  owner_id: string;
  paid_at: Date;
  payment_currency: currency;
  payment_id: string;
  pro_rata: string;
  processing_fee: string;
  recipient_legal_entity_id: string | null;
  status: string;
  total: string;
  total_payment_currency: string;
  vat_id: string | null;
  vat_percentage: string | null;
  vat_total: string | null;
  work: string;
}

/** 'InsertDeelInvoiceRecords' query type */
export interface IInsertDeelInvoiceRecordsQuery {
  params: IInsertDeelInvoiceRecordsParams;
  result: IInsertDeelInvoiceRecordsResult;
}

