/** Types generated for queries found in "src/modules/business-trips/providers/business-trips-employee-payments.provider.ts" */
export type business_trip_transaction_type = 'ACCOMMODATION' | 'CAR_RENTAL' | 'FLIGHT' | 'OTHER' | 'TRAVEL_AND_SUBSISTENCE';

export type currency = 'AUD' | 'CAD' | 'ETH' | 'EUR' | 'GBP' | 'GRT' | 'ILS' | 'JPY' | 'SEK' | 'USD' | 'USDC';

export type DateOrString = Date | string;

export type NumberOrString = number | string;

/** 'GetBusinessTripEmployeePaymentsByChargeIds' parameters type */
export interface IGetBusinessTripEmployeePaymentsByChargeIdsParams {
  chargeIds: readonly (string | null | void)[];
}

/** 'GetBusinessTripEmployeePaymentsByChargeIds' return type */
export interface IGetBusinessTripEmployeePaymentsByChargeIdsResult {
  amount: string;
  business_trip_id: string;
  category: business_trip_transaction_type;
  charge_id: string;
  currency: currency;
  date: Date;
  employee_business_id: string;
  id: string;
  owner_id: string;
  value_date: Date | null;
}

/** 'GetBusinessTripEmployeePaymentsByChargeIds' query type */
export interface IGetBusinessTripEmployeePaymentsByChargeIdsQuery {
  params: IGetBusinessTripEmployeePaymentsByChargeIdsParams;
  result: IGetBusinessTripEmployeePaymentsByChargeIdsResult;
}

/** 'GetBusinessTripEmployeePaymentById' parameters type */
export interface IGetBusinessTripEmployeePaymentByIdParams {
  businessTripExpenseId?: string | null | void;
}

/** 'GetBusinessTripEmployeePaymentById' return type */
export interface IGetBusinessTripEmployeePaymentByIdResult {
  amount: string;
  charge_id: string;
  currency: currency;
  date: Date;
  employee_business_id: string;
  id: string;
  owner_id: string;
  value_date: Date | null;
}

/** 'GetBusinessTripEmployeePaymentById' query type */
export interface IGetBusinessTripEmployeePaymentByIdQuery {
  params: IGetBusinessTripEmployeePaymentByIdParams;
  result: IGetBusinessTripEmployeePaymentByIdResult;
}

/** 'UpdateBusinessTripEmployeePayment' parameters type */
export interface IUpdateBusinessTripEmployeePaymentParams {
  amount?: NumberOrString | null | void;
  businessTripExpenseId?: string | null | void;
  chargeId?: string | null | void;
  currency?: currency | null | void;
  date?: DateOrString | null | void;
  employeeBusinessId?: string | null | void;
  valueDate?: DateOrString | null | void;
}

/** 'UpdateBusinessTripEmployeePayment' return type */
export interface IUpdateBusinessTripEmployeePaymentResult {
  amount: string;
  charge_id: string;
  currency: currency;
  date: Date;
  employee_business_id: string;
  id: string;
  owner_id: string;
  value_date: Date | null;
}

/** 'UpdateBusinessTripEmployeePayment' query type */
export interface IUpdateBusinessTripEmployeePaymentQuery {
  params: IUpdateBusinessTripEmployeePaymentParams;
  result: IUpdateBusinessTripEmployeePaymentResult;
}

/** 'InsertBusinessTripEmployeePayment' parameters type */
export interface IInsertBusinessTripEmployeePaymentParams {
  amount?: NumberOrString | null | void;
  businessTripExpenseId?: string | null | void;
  chargeId?: string | null | void;
  currency?: currency | null | void;
  date?: DateOrString | null | void;
  employeeBusinessId?: string | null | void;
  ownerId?: string | null | void;
  valueDate?: DateOrString | null | void;
}

/** 'InsertBusinessTripEmployeePayment' return type */
export interface IInsertBusinessTripEmployeePaymentResult {
  amount: string;
  charge_id: string;
  currency: currency;
  date: Date;
  employee_business_id: string;
  id: string;
  owner_id: string;
  value_date: Date | null;
}

/** 'InsertBusinessTripEmployeePayment' query type */
export interface IInsertBusinessTripEmployeePaymentQuery {
  params: IInsertBusinessTripEmployeePaymentParams;
  result: IInsertBusinessTripEmployeePaymentResult;
}

/** 'DeleteBusinessTripEmployeePayment' parameters type */
export interface IDeleteBusinessTripEmployeePaymentParams {
  businessTripExpenseId?: string | null | void;
}

/** 'DeleteBusinessTripEmployeePayment' return type */
export interface IDeleteBusinessTripEmployeePaymentResult {
  id: string;
}

/** 'DeleteBusinessTripEmployeePayment' query type */
export interface IDeleteBusinessTripEmployeePaymentQuery {
  params: IDeleteBusinessTripEmployeePaymentParams;
  result: IDeleteBusinessTripEmployeePaymentResult;
}

/** 'ReplaceBusinessTripsEmployeePaymentsChargeId' parameters type */
export interface IReplaceBusinessTripsEmployeePaymentsChargeIdParams {
  assertChargeID?: string | null | void;
  replaceChargeID?: string | null | void;
}

/** 'ReplaceBusinessTripsEmployeePaymentsChargeId' return type */
export interface IReplaceBusinessTripsEmployeePaymentsChargeIdResult {
  amount: string;
  charge_id: string;
  currency: currency;
  date: Date;
  employee_business_id: string;
  id: string;
  owner_id: string;
  value_date: Date | null;
}

/** 'ReplaceBusinessTripsEmployeePaymentsChargeId' query type */
export interface IReplaceBusinessTripsEmployeePaymentsChargeIdQuery {
  params: IReplaceBusinessTripsEmployeePaymentsChargeIdParams;
  result: IReplaceBusinessTripsEmployeePaymentsChargeIdResult;
}

