@bavs/entities
v1.2.1
Published
Shared entities for BAVS projects
Readme
@bavs/entities
Librería de entidades, DTOs y tipos compartidos para proyectos BAVS.
Instalación
npm install @bavs/entitiesUso
Producto Indusales
import { ProductoIndusalesEntity } from '@bavs/entities/indusales/producto';
import { validateAndFormatData } from '@bavs/entities';
const productData = {
ID_Producto: 1,
Sku: 'ganafort-001',
Slug: 'ganafort-6-levante-ceba',
Nombre: 'Ganafort 6% Levante y Ceba',
Marca: 'Ganafort',
Categoria: 'Sales mineralizadas',
Descripcion: 'Sal mineralizada para bovinos.',
Etapas: ['Levante', 'Ceba'],
Caracteristicas: ['Corrige deficiencias minerales'],
Ingredientes: ['Fosfato Bicálcico', 'Carbonato de Calcio'],
Composicion: { FosforoMin: '6%', CalcioMin: '15%' },
RegistroICA: '19029 SL',
Presentacion: 'Bulto 40 KG',
Precio: 85000,
Unidad: 'saco',
Estado: { idEstado: 'activo', nombre: 'Activo' },
Stock: 100,
StockMinimo: 20,
InstruccionesUso: 'Suminístrese en saladero cubierto.',
Advertencias: 'No suministrar en zonas seleníferas.',
FechaCreacion: new Date(),
FechaActualizacion: new Date()
};
const validProduct = await validateAndFormatData(productData, ProductoIndusalesEntity);DTOs Comunes
import { EstadoDTO, NotasDTO, FilesDocDTO } from '@bavs/entities';Estructura
src/
├── shared/ # DTOs/Utils globales
│ ├── dto/
│ │ ├── auth/ # Usuario, Empresa
│ │ ├── common/ # Estado, Notas
│ │ ├── location/ # Coordenadas, Pais
│ │ └── files/ # FilesDoc, FlujoDoc
│ └── utils/ # validateAndFormatData
│
└── clients/
└── indusales/
└── producto/
├── shared/
│ ├── producto-indusales.entity.ts
│ ├── dto/
│ ├── enums/
│ └── requestDto/
└── index.tsConvenciones
- Propiedades: PascalCase (
Nombre,FechaCreacion) - IDs:
ID_{Entity}(numérico) - Mensajes: Español ("debe ser un número", "es requerido")
- @Expose(): Todas las propiedades
Desarrollo
# Install
npm install
# Build
npm run build
# Test
npm run test
# Publish
npm publish --otp=CODIGOLicencia
MIT
