// @generated
// This file is automatically generated by Kanel. Do not modify manually.

import type { UsersId } from './Users';
import type { default as TipologiaPosizioneEnum } from './TipologiaPosizioneEnum';
import type { UsersStorageUserStorageId } from './UsersStorage';
import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely';

/** Identifier type for public.servizio */
export type ServizioServizioId = string & { __brand: 'public.servizio' };

/** Represents the table public.servizio */
export default interface ServizioTable {
  servizio_id: ColumnType<ServizioServizioId, ServizioServizioId | undefined, ServizioServizioId>;

  user_id: ColumnType<UsersId, UsersId, UsersId>;

  created_at: ColumnType<Date, Date | string | undefined, Date | string>;

  tipologia: ColumnType<TipologiaPosizioneEnum, TipologiaPosizioneEnum, TipologiaPosizioneEnum>;

  arredato: ColumnType<boolean, boolean | undefined, boolean>;

  budget: ColumnType<number, number, number>;

  n_adulti: ColumnType<number, number, number>;

  n_minori: ColumnType<number, number, number>;

  animali: ColumnType<boolean, boolean | undefined, boolean>;

  fumatori: ColumnType<boolean, boolean | undefined, boolean>;

  giardino: ColumnType<boolean, boolean | undefined, boolean>;

  parcheggio: ColumnType<boolean, boolean | undefined, boolean>;

  terrazzo: ColumnType<boolean, boolean | undefined, boolean>;

  ascensore: ColumnType<boolean, boolean | undefined, boolean>;

  pianoterra: ColumnType<boolean, boolean | undefined, boolean>;

  motivazione_transitorio: ColumnType<string | null, string | null, string | null>;

  reddito: ColumnType<string | null, string | null, string | null>;

  decorrenza: ColumnType<Date | null, Date | string | null, Date | string | null>;

  isInterrotto: ColumnType<boolean, boolean | undefined, boolean>;

  entromese: ColumnType<number | null, number | null, number | null>;

  permanenza: ColumnType<number | null, number | null, number | null>;

  isOkAcconto: ColumnType<boolean, boolean | undefined, boolean>;

  isOkSaldo: ColumnType<boolean, boolean | undefined, boolean>;

  isOkConsulenza: ColumnType<boolean, boolean | undefined, boolean>;

  doc_motivazione_ref: ColumnType<UsersStorageUserStorageId | null, UsersStorageUserStorageId | null, UsersStorageUserStorageId | null>;

  scadenza_motivazione_transitoria: ColumnType<Date | null, Date | string | null, Date | string | null>;

  skipPayment: ColumnType<boolean, boolean | undefined, boolean>;

  skipControlloDoc: ColumnType<boolean, boolean | undefined, boolean>;

  skipDocMotivazione: ColumnType<boolean, boolean | undefined, boolean>;

  onboardOk: ColumnType<boolean, boolean | undefined, boolean>;

  interruzioneDays: ColumnType<number, number | undefined, number>;

  acceptedInterr: ColumnType<boolean, boolean | undefined, boolean>;
}

export type Servizio = Selectable<ServizioTable>;

export type NewServizio = Insertable<ServizioTable>;

export type ServizioUpdate = Updateable<ServizioTable>;
