Skip to main content

ProductosDTO

Este archivo define la interfaz ProductosDTO, la cual se utiliza para tipar los datos relacionados con un producto dentro de la aplicación, permitiendo garantizar una estructura coherente al crear, actualizar o manipular información de productos.


🔍 Ubicación

src/model/ProductosDTO.ts


🔧 Interfaz ProductosDTO

import { EstadoProducto } from "@prisma/client";

export interface ProductosDTO {
id?: number;
codigoBarras?: string | null;
codigoQR?: string | null;
nombre: string;
descripcion: string;
cantidad: number;
precio: number;
fechaAdquisicion: string;
fechaVencimiento: string;
usuarioId: number;
estado: EstadoProducto;
imagen: string;
categoria?: string;
}

🧩 Campos

CampoTipoRequeridoDescripción
idnumberNoIdentificador único del producto (autogenerado por la base de datos).
codigoBarrasstring | nullNoCódigo de barras del producto, puede ser nulo si no se proporciona.
codigoQRstring | nullNoCódigo QR asociado al producto, puede ser nulo.
nombrestringNombre del producto.
descripcionstringDescripción detallada del producto.
cantidadnumberCantidad disponible en inventario.
precionumberPrecio actual del producto.
fechaAdquisicionstringFecha en que se adquirió el producto (en formato ISO).
fechaVencimientostringFecha de vencimiento del producto (en formato ISO).
usuarioIdnumberIdentificador del usuario que registró el producto.
estadoEstadoProductoEstado actual del producto (ej. ACTIVO, VENCIDO, AGOTADO, etc.).
imagenstringURL o path de la imagen del producto.
categoriastringNoCategoría asignada al producto, si aplica.

🧠 Notas

  • El campo estado utiliza un tipo enumerado (enum) importado desde @prisma/client, lo que garantiza que los productos solo puedan tener un estado válido definido en el modelo Prisma.
  • Esta interfaz es clave para las operaciones CRUD y validaciones de los productos en el backend.