Skip to content

Interface: Model

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

The compiled Model object returned by defineModel()

Properties

defaults

ts
readonly defaults: Record<string, unknown>;

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

Default values (Prisma @default)


fields

ts
readonly fields: Record<string, FieldDef>;

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

Field definitions map


guarded

ts
readonly guarded: string[];

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

Guarded fields — never fillable (Rails attr_protected)


hidden

ts
readonly hidden: string[];

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

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


infer

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

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

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:214

Input profiles per operation (Laravel $fillable)


name

ts
readonly name: string;

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

Model name (e.g. 'Task')


schema

ts
readonly schema: ZodObject<ZodRawShape>;

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

Compiled Zod schema — compatible with Presenter.schema()


toApi()

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

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

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' }