import type { HasDefault } from '#src/types/default.type.js'; import type { IsEmbedded } from '#src/types/embedded.type.js'; import type { IsRelation } from '#src/types/relation.js'; type OptionalKeys = { [K in keyof T]: null extends T[K] ? K : HasDefault extends true ? K : never; }[keyof T]; type RelationKeys = { [K in keyof T]: IsRelation extends true ? K : never; }[keyof T]; type RequiredKeys = Exclude | RelationKeys>; export type EntityInsert = { [K in RequiredKeys]: IsEmbedded extends true ? EntityInsert> : T[K]; } & { [K in OptionalKeys]?: IsEmbedded extends true ? EntityInsert> : T[K]; }; export {};