/** Types generated for queries found in "src/modules/business-trips/providers/business-trips-attendees.provider.ts" */
export type accountant_status = 'APPROVED' | 'PENDING' | 'UNAPPROVED';

export type pcn874_record_type = 'C' | 'H' | 'I' | 'K' | 'L1' | 'L2' | 'M' | 'P' | 'R' | 'S1' | 'S2' | 'T' | 'Y';

export type DateOrString = Date | string;

export type Json = null | boolean | number | string | Json[] | { [key: string]: Json };

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

/** 'GetBusinessTripsAttendeesByBusinessTripIds' return type */
export interface IGetBusinessTripsAttendeesByBusinessTripIdsResult {
  address: string | null;
  address_hebrew: string | null;
  arrival: Date | null;
  business_trip_id: string;
  can_settle_with_receipt: boolean;
  city: string | null;
  country: string;
  created_at: Date;
  departure: Date | null;
  email: string | null;
  exempt_dealer: boolean;
  hebrew_name: string | null;
  id: string;
  irs_code: number | null;
  is_active: boolean;
  name: string;
  no_invoices_required: boolean;
  optional_vat: boolean;
  owner_id: string | null;
  pcn874_record_type_override: pcn874_record_type | null;
  phone_number: string | null;
  sort_code: number | null;
  suggestion_data: Json | null;
  type: string | null;
  updated_at: Date;
  vat_number: string | null;
  website: string | null;
  zip_code: string | null;
}

/** 'GetBusinessTripsAttendeesByBusinessTripIds' query type */
export interface IGetBusinessTripsAttendeesByBusinessTripIdsQuery {
  params: IGetBusinessTripsAttendeesByBusinessTripIdsParams;
  result: IGetBusinessTripsAttendeesByBusinessTripIdsResult;
}

/** 'GetBusinessTripsByAttendeeId' parameters type */
export interface IGetBusinessTripsByAttendeeIdParams {
  attendeeId?: string | null | void;
}

/** 'GetBusinessTripsByAttendeeId' return type */
export interface IGetBusinessTripsByAttendeeIdResult {
  accountant_status: accountant_status;
  destination: string | null;
  id: string;
  name: string;
  owner_id: string;
  trip_purpose: string | null;
}

/** 'GetBusinessTripsByAttendeeId' query type */
export interface IGetBusinessTripsByAttendeeIdQuery {
  params: IGetBusinessTripsByAttendeeIdParams;
  result: IGetBusinessTripsByAttendeeIdResult;
}

/** 'GetLastFlightByDateAndAttendeeId' parameters type */
export interface IGetLastFlightByDateAndAttendeeIdParams {
  attendeeBusinessId?: string | null | void;
  date?: DateOrString | null | void;
}

/** 'GetLastFlightByDateAndAttendeeId' return type */
export interface IGetLastFlightByDateAndAttendeeIdResult {
  arrival: Date | null;
  attendee_business_id: string;
  business_trip_id: string;
  departure: Date | null;
  owner_id: string;
}

/** 'GetLastFlightByDateAndAttendeeId' query type */
export interface IGetLastFlightByDateAndAttendeeIdQuery {
  params: IGetLastFlightByDateAndAttendeeIdParams;
  result: IGetLastFlightByDateAndAttendeeIdResult;
}

/** 'AddBusinessTripAttendees' parameters type */
export interface IAddBusinessTripAttendeesParams {
  arrival?: DateOrString | null | void;
  businessId?: string | null | void;
  businessTripId?: string | null | void;
  departure?: DateOrString | null | void;
  ownerId?: string | null | void;
}

/** 'AddBusinessTripAttendees' return type */
export interface IAddBusinessTripAttendeesResult {
  arrival: Date | null;
  attendee_business_id: string;
  business_trip_id: string;
  departure: Date | null;
  owner_id: string;
}

/** 'AddBusinessTripAttendees' query type */
export interface IAddBusinessTripAttendeesQuery {
  params: IAddBusinessTripAttendeesParams;
  result: IAddBusinessTripAttendeesResult;
}

/** 'UpdateBusinessTripAttendee' parameters type */
export interface IUpdateBusinessTripAttendeeParams {
  arrival?: DateOrString | null | void;
  attendeeBusinessId?: string | null | void;
  businessTripId?: string | null | void;
  departure?: DateOrString | null | void;
}

/** 'UpdateBusinessTripAttendee' return type */
export interface IUpdateBusinessTripAttendeeResult {
  arrival: Date | null;
  attendee_business_id: string;
  business_trip_id: string;
  departure: Date | null;
  owner_id: string;
}

/** 'UpdateBusinessTripAttendee' query type */
export interface IUpdateBusinessTripAttendeeQuery {
  params: IUpdateBusinessTripAttendeeParams;
  result: IUpdateBusinessTripAttendeeResult;
}

/** 'RemoveBusinessTripAttendees' parameters type */
export interface IRemoveBusinessTripAttendeesParams {
  businessId?: string | null | void;
  businessTripId?: string | null | void;
}

/** 'RemoveBusinessTripAttendees' return type */
export interface IRemoveBusinessTripAttendeesResult {
  arrival: Date | null;
  attendee_business_id: string;
  business_trip_id: string;
  departure: Date | null;
  owner_id: string;
}

/** 'RemoveBusinessTripAttendees' query type */
export interface IRemoveBusinessTripAttendeesQuery {
  params: IRemoveBusinessTripAttendeesParams;
  result: IRemoveBusinessTripAttendeesResult;
}

