models:
  Producto:
    nombre: string:255
    descripcion: text nullable
    codigo_barras: string:50 unique
    precio_compra: decimal:10,2
    precio_venta: decimal:10,2
    stock: integer
    categoria_id: id foreign:categorias
    estado: enum:activo,inactivo default:activo

  Categoria:
    nombre: string:255
    descripcion: text nullable

  Cliente:
    nombre: string:255
    correo: string:255 unique nullable
    telefono: string:20 nullable
    direccion: text nullable
    tipo_documento: enum:DNI,RUC,PASAPORTE
    numero_documento: string:20 unique

  Proveedor:
    nombre: string:255
    contacto: string:255 nullable
    telefono: string:20 nullable
    correo: string:255 unique nullable
    direccion: text nullable

  Venta:
    fecha: timestamp default:CURRENT_TIMESTAMP
    cliente_id: id foreign:clientes nullable
    total: decimal:10,2
    tipo_pago: enum:Efectivo,Tarjeta,Transferencia
    estado: enum:Pagado,Pendiente,Anulado default:Pagado

  DetalleVenta:
    venta_id: id foreign:ventas
    producto_id: id foreign:productos
    cantidad: integer
    precio_unitario: decimal:10,2
    subtotal: decimal:10,2

  Compra:
    fecha: timestamp default:CURRENT_TIMESTAMP
    proveedor_id: id foreign:proveedores nullable
    total: decimal:10,2
    estado: enum:Recibida,Pendiente,Anulada default:Recibida

  DetalleCompra:
    compra_id: id foreign:compras
    producto_id: id foreign:productos
    cantidad: integer
    precio_unitario: decimal:10,2
    subtotal: decimal:10,2

  Inventario:
    producto_id: id foreign:productos
    stock_actual: integer
    stock_minimo: integer
    ubicacion: string:255 nullable

  Caja:
    monto_inicial: decimal:10,2
    monto_final: decimal:10,2 nullable
    fecha_apertura: datetime default:CURRENT_TIMESTAMP
    fecha_cierre: datetime nullable
    estado: enum:Abierta,Cerrada default:Abierta

  MovimientoCaja:
    caja_id: id foreign:cajas
    tipo: enum:Ingreso,Egreso
    monto: decimal:10,2
    descripcion: text nullable
    fecha: datetime default:CURRENT_TIMESTAMP

controllers:
  Producto:
    resource: api
  Categoria:
    resource: api
  Cliente:
    resource: api
  Proveedor:
    resource: api
  Venta:
    resource: api
  DetalleVenta:
    resource: api
  Compra:
    resource: api
  DetalleCompra:
    resource: api
  Inventario:
    resource: api
  Caja:
    resource: api
  MovimientoCaja:
    resource: api

filament:
  resources:
    Producto: all
    Categoria: all
    Cliente: all
    Proveedor: all
    Venta: all
    DetalleVenta: all
    Compra: all
    DetalleCompra: all
    Inventario: all
    Caja: all
    MovimientoCaja: all
