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

/** 'GetBusinessTripsOtherExpensesByBusinessTripIds' parameters type */
export interface IGetBusinessTripsOtherExpensesByBusinessTripIdsParams {
  businessTripIds: readonly (string | null | void)[];
  isBusinessTripIds?: number | null | void;
}

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

/** 'GetBusinessTripsOtherExpensesByBusinessTripIds' query type */
export interface IGetBusinessTripsOtherExpensesByBusinessTripIdsQuery {
  params: IGetBusinessTripsOtherExpensesByBusinessTripIdsParams;
  result: IGetBusinessTripsOtherExpensesByBusinessTripIdsResult;
}

/** 'GetBusinessTripsOtherExpensesByIds' parameters type */
export interface IGetBusinessTripsOtherExpensesByIdsParams {
  expenseIds: readonly (string | null | void)[];
  isIds?: number | null | void;
}

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

/** 'GetBusinessTripsOtherExpensesByIds' query type */
export interface IGetBusinessTripsOtherExpensesByIdsQuery {
  params: IGetBusinessTripsOtherExpensesByIdsParams;
  result: IGetBusinessTripsOtherExpensesByIdsResult;
}

/** 'UpdateBusinessTripOtherExpense' parameters type */
export interface IUpdateBusinessTripOtherExpenseParams {
  businessTripExpenseId?: string | null | void;
  deductibleExpense?: boolean | null | void;
  description?: string | null | void;
}

/** 'UpdateBusinessTripOtherExpense' return type */
export interface IUpdateBusinessTripOtherExpenseResult {
  deductible_expense: boolean | null;
  description: string | null;
  id: string;
  owner_id: string;
}

/** 'UpdateBusinessTripOtherExpense' query type */
export interface IUpdateBusinessTripOtherExpenseQuery {
  params: IUpdateBusinessTripOtherExpenseParams;
  result: IUpdateBusinessTripOtherExpenseResult;
}

/** 'InsertBusinessTripOtherExpense' parameters type */
export interface IInsertBusinessTripOtherExpenseParams {
  deductibleExpense?: boolean | null | void;
  description?: string | null | void;
  id?: string | null | void;
  ownerId?: string | null | void;
}

/** 'InsertBusinessTripOtherExpense' return type */
export interface IInsertBusinessTripOtherExpenseResult {
  deductible_expense: boolean | null;
  description: string | null;
  id: string;
  owner_id: string;
}

/** 'InsertBusinessTripOtherExpense' query type */
export interface IInsertBusinessTripOtherExpenseQuery {
  params: IInsertBusinessTripOtherExpenseParams;
  result: IInsertBusinessTripOtherExpenseResult;
}

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

/** 'DeleteBusinessTripOtherExpense' return type */
export interface IDeleteBusinessTripOtherExpenseResult {
  id: string;
}

/** 'DeleteBusinessTripOtherExpense' query type */
export interface IDeleteBusinessTripOtherExpenseQuery {
  params: IDeleteBusinessTripOtherExpenseParams;
  result: IDeleteBusinessTripOtherExpenseResult;
}

