Endpoints API REST

👥 Usuarios

GET /api/users - Listar usuarios
GET /api/users/:id - Obtener usuario por ID
POST /api/users - Crear usuario
PUT /api/users/:id - Actualizar usuario
DELETE /api/users/:id - Eliminar usuario

🔐 Autenticación

POST /api/auth/login - Iniciar sesión
POST /api/auth/register - Registro de nuevo usuario
GET /api/auth/profile - Obtener perfil del usuario autenticado
POST /api/auth/logout - Cerrar sesión

🔒 Roles

GET /api/roles - Listar roles
POST /api/roles - Crear rol
GET /api/roles/:id - Obtener rol
PUT /api/roles/:id - Editar rol
DELETE /api/roles/:id - Eliminar rol

🔒 Usuarios, Roles y Permisos

GET /api/permisos - Listar permisos
POST /api/permisos - Crear permiso
PUT /api/permisos/:id - Actualizar Permiso
DELETE /api/permisos/:id - Eliminar permisos

Asignación Usuarios y Roles
POST /api/users/:id/roles - Asignar roles a usuario
GET /api/users/:id/roles - Obtener roles del usuario

Roles y Permisos
POST /api/roles/:id/permisos - Asignar permisos al rol
GET /api/roles/:id/permisos - Listar permisos del rol

🛒 Productos y Categorías

GET /api/productos?page=1&limit=10&search=laptop - Listar productos + paginación + limite datos por página + busqueda
POST /api/productos - Crear producto
GET /api/productos/:id - Detalle de producto
PUT /api/productos/:id - Editar producto
DELETE /api/productos/:id - Eliminar producto

Categorias
GET /api/categorias - Listar categorías
POST /api/categorias - Crear categoría
GET /api/categorias/:id - Mostrar categoria
PUT /api/categorias/:id - Editar categoria
DELETE /api/categorias/:id - Eliminar categoria

🏪 Inventario y Almacenes

GET /api/almacenes - Listar almacenes
POST /api/almacenes - Crear almacén
PUT /api/almacenes/:id - Actualizar almacén

Inventarios (Filtros)
GET /api/inventario - Ver todo el inventario (todos los productos, en todos los almacenes, de todas las sucursales)
GET /api/inventario/producto/:id_producto - Ver todos los almacenes + stock donde está un producto específico, incluyendo a qué sucursal pertenece cada almacen (se puede reutilizar la busqueda de productos y luego seleccionar el id_producto para iniciar el filtro)
GET /api/inventario/sucursal/:id_sucursal?page=1&limit=30&search=laptop - Ver el inventario agrupado por almacenes de una sucursal específica (se puede seleccionar el id_sucursal(es) asignado a la sesion actual del users) [con un select de lista de sucursales podria iniciar el filtro] opcionalmente adicionar paginación limite y busqueda
GET /api/inventario/almacen/:id_almacen - Ver el inventario de un solo almacén [a partir de un select de almacenes al seleccionar se puede filtrar los productos + stock]
GET /api/inventario/sucursal/:id_sucursal/almacen/:id_almacen - Ver el inventario por id_sucursal y id_almacen [a partir de un select de sucursales y otro select de almacenes al seleccionar se puede filtrar los productos + stock]
PUT /api/almacen/actualizar_stock_producto - Actualizar stock en inventario (almacen_producto)

📦 Notas y Movimientos

POST /api/notas - Crear nota (compra, venta o devolucion)
GET /api/notas/:id - Detalle de nota (compra venta)
GET /api/notas?tipo_nota=compra - Listar notas (compra, venta o devolucion)
POST /api/movimientos - Registrar movimiento
GET /api/movimientos?tipo=ingreso - Listar movimientos tipo ingreso
GET /api/movimientos?tipo=salida - Listar movimientos tipo salida
GET /api/movimientos?tipo=devolucion - Listar movimientos tipo devolucion
GET /api/movimientos/producto/:producto_id – Historial de movimientos por producto
GET /movimientos/almacen/:almacen_id – Historial por almacén