Skip to content

Interface: Model

Defined in: packages/core/src/model/defineModel.ts:248

The compiled Model object returned by defineModel()

Properties

defaults

ts
readonly defaults: Record<string, unknown>;

Defined in: packages/core/src/model/defineModel.ts:262

Default values (Prisma @default)


fields

ts
readonly fields: Record<string, FieldDef>;

Defined in: packages/core/src/model/defineModel.ts:254

Field definitions map


guarded

ts
readonly guarded: string[];

Defined in: packages/core/src/model/defineModel.ts:258

Guarded fields — never fillable (Rails attr_protected)


hidden

ts
readonly hidden: string[];

Defined in: packages/core/src/model/defineModel.ts:256

Hidden fields — never shown in output (Spring @JsonIgnore)


infer

ts
readonly infer: {
[key: string]: any;
};

Defined in: packages/core/src/model/defineModel.ts:277

Type helper — typeof model.infer gives you the TS type

Index Signature

ts
[key: string]: any

input

ts
readonly input: Record<string, string[]>;

Defined in: packages/core/src/model/defineModel.ts:260

Input profiles per operation (Laravel $fillable)


name

ts
readonly name: string;

Defined in: packages/core/src/model/defineModel.ts:250

Model name (e.g. 'Task')


schema

ts
readonly schema: ZodObject<ZodRawShape>;

Defined in: packages/core/src/model/defineModel.ts:252

Compiled Zod schema — compatible with Presenter.schema()


toApi()

ts
readonly toApi: (data) => Record<string, unknown>;

Defined in: packages/core/src/model/defineModel.ts:275

Apply field aliases — renames agent-facing keys to API-facing keys. Pydantic-inspired model_dump(by_alias=True). Strips undefined values. Non-aliased keys pass through unchanged.

Parameters

ParameterType
dataRecord<string, unknown>

Returns

Record<string, unknown>

Example

typescript
// Model: content → .alias('description')
ProposalModel.toApi({ title: 'X', content: 'Y' })
// → { title: 'X', description: 'Y' }