Skip to content

Class: ModelBuilder

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

Builder class that exposes type functions and configuration methods. Passed as m in the defineModel() closure.

Constructors

Constructor

ts
new ModelBuilder(): ModelBuilder;

Returns

ModelBuilder

Methods

boolean()

ts
boolean(label?): FieldDef;

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

Boolean field

Parameters

ParameterType
label?string

Returns

FieldDef


casts()

ts
casts(fields): void;

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

Define field types and labels — like Laravel's $casts

Parameters

ParameterType
fieldsRecord<string, FieldDef>

Returns

void


date()

ts
date(label?): FieldDef;

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

Date field — automatically hints YYYY-MM-DD format

Parameters

ParameterType
label?string

Returns

FieldDef


enum()

ts
enum(label, values): FieldDef;

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

Enum field — Django-style choices, tells AI valid values

Parameters

ParameterType
labelstring
valuesreadonly [string, string]

Returns

FieldDef


fillable()

ts
fillable(profiles): void;

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

Define input profiles per operation — like Laravel's $fillable + NestJS DTOs

Parameters

ParameterType
profilesRecord<string, string[]>

Returns

void


guarded()

ts
guarded(fields): void;

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

Fields that can NEVER be input — like Rails' attr_protected or Laravel's $guarded

Parameters

ParameterType
fieldsstring[]

Returns

void


hidden()

ts
hidden(fields): void;

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

Fields hidden from output — like Spring's @JsonIgnore or Laravel's $hidden

Parameters

ParameterType
fieldsstring[]

Returns

void


id()

ts
id(label?): FieldDef;

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

ID field — always required, numeric

Parameters

ParameterType
label?string

Returns

FieldDef


list()

ts
list(label, shape): FieldDef;

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

Array of objects field

Parameters

ParameterType
labelstring
shapeRecord<string, FieldDef>

Returns

FieldDef


number()

ts
number(label?): FieldDef;

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

Numeric field

Parameters

ParameterType
label?string

Returns

FieldDef


object()

ts
object(label, shape): FieldDef;

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

Nested object field

Parameters

ParameterType
labelstring
shapeRecord<string, FieldDef>

Returns

FieldDef


string()

ts
string(label?): FieldDef;

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

String field — general purpose text

Parameters

ParameterType
label?string

Returns

FieldDef


text()

ts
text(label?): FieldDef;

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

Text field — semantic: markdown, multiline, long content

Parameters

ParameterType
label?string

Returns

FieldDef


timestamp()

ts
timestamp(label?): FieldDef;

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

Timestamp field — ISO datetime

Parameters

ParameterType
label?string

Returns

FieldDef


timestamps()

ts
timestamps(): void;

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

Add created_at + updated_at timestamp fields — like Laravel's timestamps()

Returns

void


uuid()

ts
uuid(label?): FieldDef;

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

UUID field — string with UUID semantics

Parameters

ParameterType
label?string

Returns

FieldDef