Skip to main content

Product

Esta interfaz representa la estructura de un producto en el sistema ProductTrack.
Incluye información clave como códigos identificadores, detalles descriptivos, cantidades, precios, fechas, estado, y datos del usuario propietario.


🔍 Ubicación

src/types/Product.ts


🧩 Tipos relacionados

EstadoProducto

export type EstadoProducto = 'DISPONIBLE' | 'AGOTADO' | 'RESERVADO' | 'VENCIDO';

Define los posibles estados en los que un producto puede encontrarse dentro del sistema:

EstadoDescripción
DISPONIBLEEl producto está en stock y puede ser vendido o usado.
AGOTADONo hay existencias del producto.
RESERVADOEl producto está apartado para un cliente u operación.
VENCIDOEl producto ha sobrepasado su fecha de vencimiento.

🧩 Propiedades

PropiedadTipoRequeridoDescripción
idnumber (opcional)❌ NoIdentificador único del producto en la base de datos.
codigoBarrasstring | null✅ SíCódigo de barras del producto (puede ser null si no se registra).
codigoQRstring | null✅ SíCódigo QR del producto (puede ser null si no se genera).
nombrestring✅ SíNombre del producto.
descripcionstring✅ SíDescripción detallada del producto.
cantidadnumber✅ SíCantidad disponible en inventario.
precionumber✅ SíPrecio unitario del producto.
fechaAdquisicionstring✅ SíFecha en la que se adquirió el producto.
fechaVencimientostring✅ SíFecha de caducidad o vencimiento del producto.
estadoEstadoProducto✅ SíEstado actual del producto en el sistema.
imagenstring✅ SíURL o ruta de la imagen del producto.
categoriastring (opcional)❌ NoCategoría a la que pertenece el producto.
usuarioIdnumber✅ SíIdentificador del usuario propietario del producto.
usuarioobject (opcional)❌ NoInformación del usuario propietario del producto.
usuario.idUsuarionumber✅ SíIdentificador único del usuario.
usuario.tipoUsuario"INDIVIDUAL" | "EMPRESARIAL"✅ SíTipo de usuario que posee el producto.
usuario.empresaIdnumber (opcional)❌ NoIdentificador de la empresa (solo para usuarios empresariales).

📦 Dependencias utilizadas

Este tipo no depende de librerías externas. Es una definición interna utilizada para manejar información de productos.


🛠️ Usos comunes

  • Registrar nuevos productos en el inventario.
  • Consultar y mostrar información detallada de un producto.
  • Actualizar datos de stock, precio o estado.
  • Asociar un producto a un usuario o empresa.

✅ Ejemplo de uso

import { Product, EstadoProducto } from "@/types/Product";

const nuevoProducto: Product = {
codigoBarras: "1234567890123",
codigoQR: "QR-123456",
nombre: "Leche Entera 1L",
descripcion: "Leche entera pasteurizada en envase de 1 litro.",
cantidad: 50,
precio: 1.25,
fechaAdquisicion: "2025-07-01",
fechaVencimiento: "2025-09-01",
estado: "DISPONIBLE",
imagen: "https://cdn.misitio.com/productos/leche1l.jpg",
categoria: "Lácteos",
usuarioId: 101,
usuario: {
idUsuario: 101,
tipoUsuario: "EMPRESARIAL",
empresaId: 45,
},
};

En este ejemplo, el producto "Leche Entera 1L" está disponible en inventario con 50 unidades y asociado a una empresa.