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
new ModelBuilder(): ModelBuilder;Returns
ModelBuilder
Methods
boolean()
boolean(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:310
Boolean field
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
casts()
casts(fields): void;Defined in: packages/core/src/model/defineModel.ts:352
Define field types and labels — like Laravel's $casts
Parameters
| Parameter | Type |
|---|---|
fields | Record<string, FieldDef> |
Returns
void
date()
date(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:315
Date field — automatically hints YYYY-MM-DD format
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
enum()
enum(label, values): FieldDef;Defined in: packages/core/src/model/defineModel.ts:335
Enum field — Django-style choices, tells AI valid values
Parameters
| Parameter | Type |
|---|---|
label | string |
values | readonly [string, string] |
Returns
fillable()
fillable(profiles): void;Defined in: packages/core/src/model/defineModel.ts:373
Define input profiles per operation — like Laravel's $fillable + NestJS DTOs
Parameters
| Parameter | Type |
|---|---|
profiles | Record<string, string[]> |
Returns
void
guarded()
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
| Parameter | Type |
|---|---|
fields | string[] |
Returns
void
hidden()
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
| Parameter | Type |
|---|---|
fields | string[] |
Returns
void
id()
id(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:330
ID field — always required, numeric
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
list()
list(label, shape): FieldDef;Defined in: packages/core/src/model/defineModel.ts:345
Array of objects field
Parameters
| Parameter | Type |
|---|---|
label | string |
shape | Record<string, FieldDef> |
Returns
number()
number(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:305
Numeric field
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
object()
object(label, shape): FieldDef;Defined in: packages/core/src/model/defineModel.ts:340
Nested object field
Parameters
| Parameter | Type |
|---|---|
label | string |
shape | Record<string, FieldDef> |
Returns
string()
string(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:295
String field — general purpose text
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
text()
text(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:300
Text field — semantic: markdown, multiline, long content
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
timestamp()
timestamp(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:320
Timestamp field — ISO datetime
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
timestamps()
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()
uuid(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:325
UUID field — string with UUID semantics
Parameters
| Parameter | Type |
|---|---|
label? | string |