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

export type DateOrString = Date | string;

/** 'GetAllBusinessTrips' parameters type */
export type IGetAllBusinessTripsParams = void;

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

/** 'GetAllBusinessTrips' query type */
export interface IGetAllBusinessTripsQuery {
  params: IGetAllBusinessTripsParams;
  result: IGetAllBusinessTripsResult;
}

/** 'GetBusinessTripsByIds' parameters type */
export interface IGetBusinessTripsByIdsParams {
  businessTripsIds: readonly (string | null | void)[];
}

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

/** 'GetBusinessTripsByIds' query type */
export interface IGetBusinessTripsByIdsQuery {
  params: IGetBusinessTripsByIdsParams;
  result: IGetBusinessTripsByIdsResult;
}

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

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

/** 'GetBusinessTripsByChargeIds' query type */
export interface IGetBusinessTripsByChargeIdsQuery {
  params: IGetBusinessTripsByChargeIdsParams;
  result: IGetBusinessTripsByChargeIdsResult;
}

/** 'GetChargeIdsByBusinessTripId' parameters type */
export interface IGetChargeIdsByBusinessTripIdParams {
  businessTripsIds: readonly (string | null | void)[];
}

/** 'GetChargeIdsByBusinessTripId' return type */
export interface IGetChargeIdsByBusinessTripIdResult {
  business_trip_id: string | null;
  charge_id: string;
}

/** 'GetChargeIdsByBusinessTripId' query type */
export interface IGetChargeIdsByBusinessTripIdQuery {
  params: IGetChargeIdsByBusinessTripIdParams;
  result: IGetChargeIdsByBusinessTripIdResult;
}

/** 'GetBusinessTripsByDates' parameters type */
export interface IGetBusinessTripsByDatesParams {
  fromDate?: DateOrString | null | void;
  toDate?: DateOrString | null | void;
}

/** 'GetBusinessTripsByDates' return type */
export interface IGetBusinessTripsByDatesResult {
  accountant_status: accountant_status;
  charge_id: string;
  destination: string | null;
  from_date: Date | null;
  id: string;
  name: string;
  owner_id: string;
  to_date: Date | null;
  trip_purpose: string | null;
}

/** 'GetBusinessTripsByDates' query type */
export interface IGetBusinessTripsByDatesQuery {
  params: IGetBusinessTripsByDatesParams;
  result: IGetBusinessTripsByDatesResult;
}

/** 'UpdateChargeBusinessTrip' parameters type */
export interface IUpdateChargeBusinessTripParams {
  businessTripId?: string | null | void;
  chargeId?: string | null | void;
  ownerId?: string | null | void;
}

/** 'UpdateChargeBusinessTrip' return type */
export interface IUpdateChargeBusinessTripResult {
  business_trip_id: string | null;
  charge_id: string;
  owner_id: string;
}

/** 'UpdateChargeBusinessTrip' query type */
export interface IUpdateChargeBusinessTripQuery {
  params: IUpdateChargeBusinessTripParams;
  result: IUpdateChargeBusinessTripResult;
}

/** 'DeleteChargeBusinessTrip' parameters type */
export interface IDeleteChargeBusinessTripParams {
  chargeId?: string | null | void;
}

/** 'DeleteChargeBusinessTrip' return type */
export type IDeleteChargeBusinessTripResult = void;

/** 'DeleteChargeBusinessTrip' query type */
export interface IDeleteChargeBusinessTripQuery {
  params: IDeleteChargeBusinessTripParams;
  result: IDeleteChargeBusinessTripResult;
}

/** 'UpdateBusinessTrip' parameters type */
export interface IUpdateBusinessTripParams {
  accountantStatus?: accountant_status | null | void;
  businessTripId?: string | null | void;
  destinationCode?: string | null | void;
  name?: string | null | void;
  tripPurpose?: string | null | void;
}

/** 'UpdateBusinessTrip' return type */
export interface IUpdateBusinessTripResult {
  id: string;
}

/** 'UpdateBusinessTrip' query type */
export interface IUpdateBusinessTripQuery {
  params: IUpdateBusinessTripParams;
  result: IUpdateBusinessTripResult;
}

/** 'InsertBusinessTrip' parameters type */
export interface IInsertBusinessTripParams {
  destinationCode?: string | null | void;
  name?: string | null | void;
  ownerId?: string | null | void;
  tripPurpose?: string | null | void;
}

/** 'InsertBusinessTrip' return type */
export interface IInsertBusinessTripResult {
  id: string;
}

/** 'InsertBusinessTrip' query type */
export interface IInsertBusinessTripQuery {
  params: IInsertBusinessTripParams;
  result: IInsertBusinessTripResult;
}

/** 'UpdateAccountantApproval' parameters type */
export interface IUpdateAccountantApprovalParams {
  accountantStatus?: accountant_status | null | void;
  businessTripId?: string | null | void;
}

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

/** 'UpdateAccountantApproval' query type */
export interface IUpdateAccountantApprovalQuery {
  params: IUpdateAccountantApprovalParams;
  result: IUpdateAccountantApprovalResult;
}

