Endpoints / Productos
Crear producto
Registra un nuevo producto dentro de la empresa del usuario autenticado, incluyendo sus relaciones comerciales y datos de inventario.
/productsCaso de Uso
Se usa cuando la aplicación necesita crear un nuevo producto con su categoría, marca, proveedor y medida asociados, además de sus precios y niveles de stock. Al usarlo, el usuario obtiene los datos completos del producto creado, con las relaciones resueltas y la URL pública de la imagen.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol jefe o empleado. La empresa y el usuario autenticado deben estar activos.
Parámetros de ruta
Este endpoint no recibe parámetros de ruta.
Body
prdtoemidstringobligatorioIdentificador de la empresa a la que pertenecerá el producto; debe coincidir con la empresa del usuario autenticado.
prdtoctgriaidstringobligatorioIdentificador de la categoría del producto.
prdtomrcidstringobligatorioIdentificador de la marca del producto.
prdtoprovidstringobligatorioIdentificador del proveedor del producto.
prdtomdiaidstringobligatorioIdentificador de la medida del producto.
prdtocodigostringobligatorioCódigo del producto; debe ser único dentro de la empresa.
prdtonombrestringobligatorioNombre del producto; debe ser único dentro de la empresa.
prdtopreciocompranumberobligatorioPrecio de compra del producto.
prdtoprecioventanumberobligatorioPrecio de venta del producto.
prdtostockminimonumberobligatorioNivel mínimo de stock.
prdtostockmaximonumberobligatorioNivel máximo de stock.
imagenfile opcionalImagen del producto; solo se aceptan .png o .jpg de hasta 5 MB. Si no se envía, se asigna una imagen por defecto.
Reglas de negocio
Solo un usuario con rol jefe o empleado puede registrar productos.
Solo permite crear productos en la misma empresa del usuario autenticado.
La empresa del usuario autenticado debe estar activa.
El usuario autenticado debe estar activo.
Todos los campos del body, excepto imagen, son obligatorios.
prdtoctgriaid, prdtomrcid, prdtoprovid y prdtomdiaid deben corresponder a entidades existentes dentro de la misma empresa.
prdtocodigo no puede repetirse dentro de la misma empresa.
prdtonombre no puede repetirse dentro de la misma empresa.
prdtopreciocompra, prdtoprecioventa, prdtostockminimo y prdtostockmaximo deben ser valores numéricos válidos.
Si se envía imagen, solo se aceptan archivos .png y .jpg de hasta 5 MB.
Si no se envía imagen, se asigna una imagen por defecto.
El producto se crea con estado activo.
Cuando se envía imagen, el Content-Type debe ser multipart/form-data. Si no, puede usarse application/json.
Errores esperados
No se envió un token JWT válido o el token no contiene información válida del usuario.
prdtoemid fue enviado vacío.
prdtoctgriaid fue enviado vacío.
prdtomrcid fue enviado vacío.
prdtoprovid fue enviado vacío.
prdtomdiaid fue enviado vacío.
prdtocodigo fue enviado vacío.
prdtonombre fue enviado vacío.
Uno de los campos numéricos fue enviado vacío.
Uno de los campos numéricos no es un número válido.
La imagen enviada supera los 5 MB.
La imagen enviada no tiene extensión .png o .jpg.
Ocurrió un error interno al guardar la imagen en el servidor.
La empresa asociada al usuario autenticado no fue encontrada.
La empresa asociada al usuario autenticado está inactiva.
El usuario autenticado no fue encontrado dentro de su empresa.
El usuario autenticado no pertenece a la empresa indicada por su sesión.
prdtoemid pertenece a una empresa distinta a la del usuario autenticado.
El rol del usuario no está permitido para acceder al módulo de productos.
El usuario autenticado no tiene un rol permitido para crear productos.
El usuario autenticado está inactivo y no puede usar el sistema.
prdtoctgriaid no corresponde a una categoría existente en la empresa.
prdtomrcid no corresponde a una marca existente en la empresa.
prdtoprovid no corresponde a un proveedor existente en la empresa.
prdtomdiaid no corresponde a una medida existente en la empresa.
Ya hay un producto registrado con el mismo prdtocodigo dentro de la empresa.
Ya hay un producto registrado con el mismo prdtonombre dentro de la empresa.
El producto fue guardado, pero no pudo consultarse para devolver la respuesta.
Ocurrió un error interno al guardar el producto.
Notas de uso
Este endpoint no recibe parámetros de ruta ni query params.
Si no se envía imagen, usa Content-Type: application/json.
Si se envía imagen, usa Content-Type: multipart/form-data con el archivo en el campo imagen.
Los campos prdtocodigo y prdtonombre deben ser únicos dentro de la empresa.
La respuesta incluye las relaciones resueltas como objetos anidados (categoria, marca, proveedor, medida).
El campo prdtoimagen se devuelve como URL pública completa.