Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Carlos-Gnd/FERRED-Inventario-y-Ventas/llms.txt

Use this file to discover all available pages before exploring further.

El Administrador tiene acceso total al sistema: gestión de usuarios, configuración de precios, reportes consolidados de todas las sucursales y todas las operaciones. A diferencia de CAJERO y BODEGA, el rol ADMIN no está restringido a una sucursal concreta y puede operar sobre cualquier sucursalId del sistema.
Los usuarios ADMIN no tienen filtro de sucursalId aplicado. Todas las consultas que normalmente se limitan a una sucursal — stock, estadísticas de ventas, inventario crítico — devuelven datos de todas las sucursales cuando el solicitante es ADMIN.

Capacidades exclusivas

Las siguientes acciones están disponibles únicamente para el rol ADMIN:
  • Gestionar usuarios — crear, actualizar y desactivar cuentas; asignar roles y sucursal
  • Configurar precios — actualizar precioVenta y precioConIva de los productos
  • Ver reportes consolidados — estadísticas de ventas e inventario crítico de todas las sucursales
  • Transferencias entre sucursales — mover stock de una sede a otra con POST /api/inventario/transferencia
  • Ver stock comparativoGET /api/inventario/stock-comparativo y GET /api/inventario/criticos-por-sucursal

Gestión de usuarios

Los administradores crean y mantienen las cuentas de usuario. Todos los endpoints de gestión de usuarios tienen roleMiddleware('ADMIN').
MétodoEndpointAcción
GET/api/usuariosLista usuarios de la sucursal del admin
GET/api/usuarios/:idObtiene un usuario específico
POST/api/usuariosCrea un nuevo usuario
PUT/api/usuarios/:idActualiza nombre, email, rol o contraseña
DELETE/api/usuarios/:idDesactiva un usuario (activo: false)
Al crear o actualizar un usuario, el sucursalId del cuerpo debe coincidir con la sucursal propia del admin. Un administrador no puede crear ni modificar usuarios de otra sucursal.
1

Crear el usuario

POST /api/usuarios con { nombre, email, contrasena, rol, sucursalId }. La contraseña se almacena hasheada con bcrypt (12 rondas).
2

Asignar un rol

Establece rol como 'ADMIN', 'CAJERO' o 'BODEGA'. El valor debe coincidir exactamente con el tipo UserRole.
3

Asignar una sucursal

Establece sucursalId con un ID de sucursal válido. El usuario quedará restringido a esa sede (excepto si el rol es ADMIN).

Panel de control consolidado

El dashboard del ADMIN agrega datos de todas las sucursales sin filtro de sucursalId:
  • GET /api/ventas/estadisticas/semanales — totales de ventas de todas las sucursales en los últimos N días (máx. 14)
  • GET /api/inventario/criticos-detalle — productos en nivel bajo o crítico en todas las sedes
  • GET /api/inventario/criticos-por-sucursal — conteo de críticos agrupado por sucursal
Los usuarios con otros roles que llamen a los mismos endpoints reciben únicamente los datos de su propia sucursal.

Transferencias entre sucursales

Solo el ADMIN puede iniciar transferencias de stock entre sucursales. El endpoint está protegido exclusivamente con roleMiddleware('ADMIN').
POST /api/inventario/transferencia
Content-Type: application/json

{
  "productoId": 42,
  "origenId": 1,
  "destinoId": 2,
  "cantidad": 10
}
La transferencia corre en una transacción Prisma atómica: descuenta de la sucursal origen e incrementa en el destino. Si el origen no tiene stock suficiente, la transacción se revierte y la API devuelve 409 Conflict.

Credenciales de prueba

CampoValor
Correoadmin@ferred.com
Contraseñaadmin123
URLhttps://ferred.netlify.app

Build docs developers (and LLMs) love