/** Types generated for queries found in "src/modules/business-trips/providers/business-trips-expenses.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 stringArray = (string)[];

/** 'GetBusinessTripsExpensesByBusinessTripIds' parameters type */
export interface IGetBusinessTripsExpensesByBusinessTripIdsParams {
  businessTripIds: readonly (string | null | void)[];
}

/** 'GetBusinessTripsExpensesByBusinessTripIds' return type */
export interface IGetBusinessTripsExpensesByBusinessTripIdsResult {
  amount: string | null;
  business_trip_id: string | null;
  category: business_trip_transaction_type | null;
  charge_ids: stringArray | null;
  currency: currency | null;
  date: Date | null;
  employee_business_id: string | null;
  id: string | null;
  payed_by_employee: boolean | null;
  transaction_ids: stringArray | null;
  value_date: Date | null;
}

/** 'GetBusinessTripsExpensesByBusinessTripIds' query type */
export interface IGetBusinessTripsExpensesByBusinessTripIdsQuery {
  params: IGetBusinessTripsExpensesByBusinessTripIdsParams;
  result: IGetBusinessTripsExpensesByBusinessTripIdsResult;
}

/** 'GetBusinessTripsExpensesByIds' parameters type */
export interface IGetBusinessTripsExpensesByIdsParams {
  expenseIds: readonly (string | null | void)[];
}

/** 'GetBusinessTripsExpensesByIds' return type */
export interface IGetBusinessTripsExpensesByIdsResult {
  amount: string | null;
  business_trip_id: string | null;
  category: business_trip_transaction_type | null;
  charge_ids: stringArray | null;
  currency: currency | null;
  date: Date | null;
  employee_business_id: string | null;
  id: string | null;
  payed_by_employee: boolean | null;
  transaction_ids: stringArray | null;
  value_date: Date | null;
}

/** 'GetBusinessTripsExpensesByIds' query type */
export interface IGetBusinessTripsExpensesByIdsQuery {
  params: IGetBusinessTripsExpensesByIdsParams;
  result: IGetBusinessTripsExpensesByIdsResult;
}

/** 'UpdateBusinessTripExpense' parameters type */
export interface IUpdateBusinessTripExpenseParams {
  businessTripExpenseId?: string | null | void;
  businessTripId?: string | null | void;
  category?: business_trip_transaction_type | null | void;
}

/** 'UpdateBusinessTripExpense' return type */
export interface IUpdateBusinessTripExpenseResult {
  business_trip_id: string;
  category: business_trip_transaction_type;
  id: string;
  owner_id: string;
}

/** 'UpdateBusinessTripExpense' query type */
export interface IUpdateBusinessTripExpenseQuery {
  params: IUpdateBusinessTripExpenseParams;
  result: IUpdateBusinessTripExpenseResult;
}

/** 'InsertBusinessTripExpense' parameters type */
export interface IInsertBusinessTripExpenseParams {
  businessTripId?: string | null | void;
  category?: business_trip_transaction_type | null | void;
  ownerId?: string | null | void;
}

/** 'InsertBusinessTripExpense' return type */
export interface IInsertBusinessTripExpenseResult {
  business_trip_id: string;
  category: business_trip_transaction_type;
  id: string;
  owner_id: string;
}

/** 'InsertBusinessTripExpense' query type */
export interface IInsertBusinessTripExpenseQuery {
  params: IInsertBusinessTripExpenseParams;
  result: IInsertBusinessTripExpenseResult;
}

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

/** 'DeleteBusinessTripExpense' return type */
export interface IDeleteBusinessTripExpenseResult {
  id: string;
}

/** 'DeleteBusinessTripExpense' query type */
export interface IDeleteBusinessTripExpenseQuery {
  params: IDeleteBusinessTripExpenseParams;
  result: IDeleteBusinessTripExpenseResult;
}

