Class: ModelBuilder
Defined in: packages/core/src/model/defineModel.ts:240
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:264
Boolean field
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
casts()
casts(fields): void;Defined in: packages/core/src/model/defineModel.ts:306
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:269
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:289
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:327
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:322
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:317
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:284
ID field — always required, numeric
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
list()
list(label, shape): FieldDef;Defined in: packages/core/src/model/defineModel.ts:299
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:259
Numeric field
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
object()
object(label, shape): FieldDef;Defined in: packages/core/src/model/defineModel.ts:294
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:249
String field — general purpose text
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
text()
text(label?): FieldDef;Defined in: packages/core/src/model/defineModel.ts:254
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:274
Timestamp field — ISO datetime
Parameters
| Parameter | Type |
|---|---|
label? | string |
Returns
timestamps()
timestamps(): void;Defined in: packages/core/src/model/defineModel.ts:311
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:279
UUID field — string with UUID semantics
Parameters
| Parameter | Type |
|---|---|
label? | string |