/** Types generated for queries found in "src/modules/contracts/providers/contracts.provider.ts" */
export type currency = 'AUD' | 'CAD' | 'ETH' | 'EUR' | 'GBP' | 'GRT' | 'ILS' | 'JPY' | 'SEK' | 'USD' | 'USDC';

export type document_type = 'CREDIT_INVOICE' | 'INVOICE' | 'INVOICE_RECEIPT' | 'OTHER' | 'PROFORMA' | 'RECEIPT' | 'UNPROCESSED';

export type DateOrString = Date | string;

export type NumberOrString = number | string;

export type stringArray = (string)[];

/** 'GetAllOpenContracts' parameters type */
export type IGetAllOpenContractsParams = void;

/** 'GetAllOpenContracts' return type */
export interface IGetAllOpenContractsResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'GetAllOpenContracts' query type */
export interface IGetAllOpenContractsQuery {
  params: IGetAllOpenContractsParams;
  result: IGetAllOpenContractsResult;
}

/** 'GetContractsByIds' parameters type */
export interface IGetContractsByIdsParams {
  ids: readonly (string | null | void)[];
}

/** 'GetContractsByIds' return type */
export interface IGetContractsByIdsResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'GetContractsByIds' query type */
export interface IGetContractsByIdsQuery {
  params: IGetContractsByIdsParams;
  result: IGetContractsByIdsResult;
}

/** 'GetContractsByAdminBusinessIds' parameters type */
export interface IGetContractsByAdminBusinessIdsParams {
  adminBusinessIds: readonly (string | null | void)[];
}

/** 'GetContractsByAdminBusinessIds' return type */
export interface IGetContractsByAdminBusinessIdsResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'GetContractsByAdminBusinessIds' query type */
export interface IGetContractsByAdminBusinessIdsQuery {
  params: IGetContractsByAdminBusinessIdsParams;
  result: IGetContractsByAdminBusinessIdsResult;
}

/** 'GetContractsByClientIds' parameters type */
export interface IGetContractsByClientIdsParams {
  clientIds: readonly (string | null | void)[];
}

/** 'GetContractsByClientIds' return type */
export interface IGetContractsByClientIdsResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'GetContractsByClientIds' query type */
export interface IGetContractsByClientIdsQuery {
  params: IGetContractsByClientIdsParams;
  result: IGetContractsByClientIdsResult;
}

/** 'DeleteContract' parameters type */
export interface IDeleteContractParams {
  id?: string | null | void;
}

/** 'DeleteContract' return type */
export type IDeleteContractResult = void;

/** 'DeleteContract' query type */
export interface IDeleteContractQuery {
  params: IDeleteContractParams;
  result: IDeleteContractResult;
}

/** 'UpdateContract' parameters type */
export interface IUpdateContractParams {
  amount?: number | null | void;
  billingCycle?: string | null | void;
  clientId?: string | null | void;
  contractId?: string | null | void;
  currency?: currency | null | void;
  documentType?: document_type | null | void;
  endDate?: DateOrString | null | void;
  isActive?: boolean | null | void;
  msCloud?: string | null | void;
  operationsLimit?: NumberOrString | null | void;
  plan?: string | null | void;
  product?: string | null | void;
  purchaseOrders?: stringArray | null | void;
  remarks?: string | null | void;
  startDate?: DateOrString | null | void;
}

/** 'UpdateContract' return type */
export interface IUpdateContractResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'UpdateContract' query type */
export interface IUpdateContractQuery {
  params: IUpdateContractParams;
  result: IUpdateContractResult;
}

/** 'InsertContract' parameters type */
export interface IInsertContractParams {
  amount?: number | null | void;
  billingCycle?: string | null | void;
  clientId?: string | null | void;
  currency?: currency | null | void;
  documentType?: document_type | null | void;
  endDate?: DateOrString | null | void;
  isActive?: boolean | null | void;
  msCloud?: string | null | void;
  operationsLimit?: NumberOrString | null | void;
  ownerId?: string | null | void;
  plan?: string | null | void;
  product?: string | null | void;
  purchaseOrders?: stringArray | null | void;
  remarks?: string | null | void;
  startDate?: DateOrString | null | void;
}

/** 'InsertContract' return type */
export interface IInsertContractResult {
  amount: number;
  billing_cycle: string;
  client_id: string;
  currency: currency;
  document_type: document_type;
  end_date: Date;
  id: string;
  is_active: boolean | null;
  ms_cloud: string | null;
  operations_count: string;
  owner_id: string;
  plan: string | null;
  product: string | null;
  purchase_orders: stringArray;
  remarks: string | null;
  signed_agreement: string | null;
  start_date: Date;
}

/** 'InsertContract' query type */
export interface IInsertContractQuery {
  params: IInsertContractParams;
  result: IInsertContractResult;
}

