/** Types generated for queries found in "src/modules/charges/providers/charge-spread.provider.ts" */
export type DateOrString = Date | string;

export type NumberOrString = number | string;

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

/** 'GetChargesSpreadByChargeIds' return type */
export interface IGetChargesSpreadByChargeIdsResult {
  amount: string | null;
  charge_id: string;
  owner_id: string;
  year_of_relevance: Date;
}

/** 'GetChargesSpreadByChargeIds' query type */
export interface IGetChargesSpreadByChargeIdsQuery {
  params: IGetChargesSpreadByChargeIdsParams;
  result: IGetChargesSpreadByChargeIdsResult;
}

/** 'UpdateChargeSpread' parameters type */
export interface IUpdateChargeSpreadParams {
  amount?: NumberOrString | null | void;
  chargeId?: string | null | void;
  year?: DateOrString | null | void;
}

/** 'UpdateChargeSpread' return type */
export interface IUpdateChargeSpreadResult {
  amount: string | null;
  charge_id: string;
  owner_id: string;
  year: Date | null;
  year_of_relevance: Date;
}

/** 'UpdateChargeSpread' query type */
export interface IUpdateChargeSpreadQuery {
  params: IUpdateChargeSpreadParams;
  result: IUpdateChargeSpreadResult;
}

/** 'InsertChargeSpread' parameters type */
export interface IInsertChargeSpreadParams {
  chargeSpread: readonly ({
    chargeId: string | null | void,
    yearOfRelevance: DateOrString | null | void,
    amount: NumberOrString | null | void,
    ownerId: string | null | void
  })[];
}

/** 'InsertChargeSpread' return type */
export interface IInsertChargeSpreadResult {
  amount: string | null;
  charge_id: string;
  owner_id: string;
  year_of_relevance: Date;
}

/** 'InsertChargeSpread' query type */
export interface IInsertChargeSpreadQuery {
  params: IInsertChargeSpreadParams;
  result: IInsertChargeSpreadResult;
}

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

/** 'DeleteAllChargeSpreadByChargeIds' return type */
export type IDeleteAllChargeSpreadByChargeIdsResult = void;

/** 'DeleteAllChargeSpreadByChargeIds' query type */
export interface IDeleteAllChargeSpreadByChargeIdsQuery {
  params: IDeleteAllChargeSpreadByChargeIdsParams;
  result: IDeleteAllChargeSpreadByChargeIdsResult;
}

/** 'DeleteAllChargeSpreadByChargeIdAndYearOfRelevance' parameters type */
export interface IDeleteAllChargeSpreadByChargeIdAndYearOfRelevanceParams {
  chargeId?: string | null | void;
  yearOfRelevance?: DateOrString | null | void;
}

/** 'DeleteAllChargeSpreadByChargeIdAndYearOfRelevance' return type */
export type IDeleteAllChargeSpreadByChargeIdAndYearOfRelevanceResult = void;

/** 'DeleteAllChargeSpreadByChargeIdAndYearOfRelevance' query type */
export interface IDeleteAllChargeSpreadByChargeIdAndYearOfRelevanceQuery {
  params: IDeleteAllChargeSpreadByChargeIdAndYearOfRelevanceParams;
  result: IDeleteAllChargeSpreadByChargeIdAndYearOfRelevanceResult;
}

