Skip to content

Modelos

Los modelos se definen con defineModel() y field builders desde t.

import type { InferInput, InferModel } from 'jsorm';
import { defineModel, t } from 'jsorm';
const User = defineModel('users', {
id: t.number().primary(),
name: t.string(),
email: t.string().optional(),
active: t.boolean().default(true),
createdAt: t.date(),
});
type UserRecord = InferModel<typeof User>;
type UserInput = InferInput<typeof User>;
  • t.string()
  • t.number()
  • t.boolean()
  • t.date()
  • builders de relación como t.belongsTo() y t.hasMany()
  • .optional()
  • .nullable()
  • .primary()
  • .default(value)
  • .unique()
  • .index()
  1. Mantén nombres de tabla estables y explícitos.
  2. Coloca definiciones de relación junto a la intención real de foreign keys.
  3. Prefiere InferModel e InferInput inferidos en lugar de interfaces manuales.