import { SchemaBase } from '../generic'; import { FromPostgresPropertySchemas } from './FromPostgresPropertySchemas'; import { PostgresColumnModel } from './PostgresColumnModel'; import { RequiredPropOf } from './RequiredPropOf'; export type PostgresRecordModelWithoutRequired = SchemaBase & { readonly properties: Record; readonly minProperties?: number; readonly maxProperties?: number; readonly default?: Record; readonly examples?: Record[]; readonly additionalProperties?: false | PostgresColumnModel; }; export type PostgresRecordModelWithRequired = PostgresRecordModelWithoutRequired & { readonly required: readonly string[]; }; export type PostgresRecordModel = PostgresRecordModelWithoutRequired | PostgresRecordModelWithRequired; export type OnlyRequiredPostgres = T extends PostgresRecordModelWithRequired ? Required, RequiredPropOf>> : Record; export type OnlyOptionalPostgres = T extends PostgresRecordModelWithRequired ? Partial, RequiredPropOf>> : Record; export type FromPostgresRecordModel = OnlyRequiredPostgres & OnlyOptionalPostgres;