import { type BaseTypeMap } from './base-prisma-types.js'; import { type PrismaBasicModel } from './prisma-basic-model.js'; /** * Gets the full model type with all nested models for Prisma. * * @category Prisma : Common * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type PrismaFullModel = PrismaBasicModel & ExpandModelObjects; /** * Expand a model's objects (nested models). * * @category Prisma : Common * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type ExpandModelObjects = { [Key in keyof Objects]: Objects[Key] extends ReadonlyArray ? ExpandModel[] : ExpandModel; }; /** * Expand a model entry from {@link ExpandModelObjects}. * * @category Prisma : Common * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type ExpandModel = null extends Entry ? null | ExpandModel> : undefined extends Entry ? undefined | ExpandModel> : Entry extends Readonly<{ name: infer ModelName extends keyof TypeMap['model']; }> ? PrismaFullModel : never;