/** Types generated for queries found in "src/modules/business-trips/providers/business-trips-expenses-accommodations.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 Json = null | boolean | number | string | Json[] | { [key: string]: Json };

export type JsonArray = (Json)[];

export type stringArray = (string)[];

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

/** 'GetBusinessTripsAccommodationsExpensesByBusinessTripIds' return type */
export interface IGetBusinessTripsAccommodationsExpensesByBusinessTripIdsResult {
  amount: string | null;
  attendees_stay: JsonArray;
  business_trip_id: string | null;
  category: business_trip_transaction_type | null;
  charge_ids: stringArray | null;
  country: string | null;
  currency: currency | null;
  date: Date | null;
  employee_business_id: string | null;
  id: string;
  nights_count: number | null;
  owner_id: string;
  payed_by_employee: boolean | null;
  transaction_ids: stringArray | null;
  value_date: Date | null;
}

/** 'GetBusinessTripsAccommodationsExpensesByBusinessTripIds' query type */
export interface IGetBusinessTripsAccommodationsExpensesByBusinessTripIdsQuery {
  params: IGetBusinessTripsAccommodationsExpensesByBusinessTripIdsParams;
  result: IGetBusinessTripsAccommodationsExpensesByBusinessTripIdsResult;
}

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

/** 'GetBusinessTripsAccommodationsExpensesByIds' return type */
export interface IGetBusinessTripsAccommodationsExpensesByIdsResult {
  amount: string | null;
  attendees_stay: JsonArray;
  business_trip_id: string | null;
  category: business_trip_transaction_type | null;
  charge_ids: stringArray | null;
  country: string | null;
  currency: currency | null;
  date: Date | null;
  employee_business_id: string | null;
  id: string;
  nights_count: number | null;
  owner_id: string;
  payed_by_employee: boolean | null;
  transaction_ids: stringArray | null;
  value_date: Date | null;
}

/** 'GetBusinessTripsAccommodationsExpensesByIds' query type */
export interface IGetBusinessTripsAccommodationsExpensesByIdsQuery {
  params: IGetBusinessTripsAccommodationsExpensesByIdsParams;
  result: IGetBusinessTripsAccommodationsExpensesByIdsResult;
}

/** 'UpdateBusinessTripAccommodationsExpense' parameters type */
export interface IUpdateBusinessTripAccommodationsExpenseParams {
  attendeesStay?: JsonArray | null | void;
  businessTripExpenseId?: string | null | void;
  country?: string | null | void;
  nightsCount?: number | null | void;
}

/** 'UpdateBusinessTripAccommodationsExpense' return type */
export interface IUpdateBusinessTripAccommodationsExpenseResult {
  attendees_stay: JsonArray;
  country: string | null;
  id: string;
  nights_count: number | null;
  owner_id: string;
}

/** 'UpdateBusinessTripAccommodationsExpense' query type */
export interface IUpdateBusinessTripAccommodationsExpenseQuery {
  params: IUpdateBusinessTripAccommodationsExpenseParams;
  result: IUpdateBusinessTripAccommodationsExpenseResult;
}

/** 'InsertBusinessTripAccommodationsExpense' parameters type */
export interface IInsertBusinessTripAccommodationsExpenseParams {
  attendeesStay?: JsonArray | null | void;
  country?: string | null | void;
  id?: string | null | void;
  nightsCount?: number | null | void;
  ownerId?: string | null | void;
}

/** 'InsertBusinessTripAccommodationsExpense' return type */
export interface IInsertBusinessTripAccommodationsExpenseResult {
  attendees_stay: JsonArray;
  country: string | null;
  id: string;
  nights_count: number | null;
  owner_id: string;
}

/** 'InsertBusinessTripAccommodationsExpense' query type */
export interface IInsertBusinessTripAccommodationsExpenseQuery {
  params: IInsertBusinessTripAccommodationsExpenseParams;
  result: IInsertBusinessTripAccommodationsExpenseResult;
}

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

/** 'DeleteBusinessTripAccommodationsExpense' return type */
export interface IDeleteBusinessTripAccommodationsExpenseResult {
  id: string;
}

/** 'DeleteBusinessTripAccommodationsExpense' query type */
export interface IDeleteBusinessTripAccommodationsExpenseQuery {
  params: IDeleteBusinessTripAccommodationsExpenseParams;
  result: IDeleteBusinessTripAccommodationsExpenseResult;
}

