-
Notifications
You must be signed in to change notification settings - Fork 0
Modulo Bodega
Jose Navarro edited this page Aug 12, 2026
·
1 revision
Catálogo de bodegas/almacenes. Es el catálogo más referenciado de todo el backend: usuario, tarea, convenio, entrega, inventario y dashboard lo consultan.
| Método | Path | Rol | Request | Response |
|---|---|---|---|---|
| GET | /api/bodegas |
autenticado (cualquier rol — único GET exento) | query filtros | RespuestaPagina<RespuestaBodega> |
| GET | /api/bodegas/{id} |
ADMIN | — | RespuestaBodega |
| GET | /api/bodegas/{id}/usuarios |
ADMIN | — | List<RespuestaUsuarioBodega> |
| POST | /api/bodegas |
ADMIN | CuerpoBodega |
RespuestaBodega (201) |
| PUT | /api/bodegas/{id} |
ADMIN | CuerpoBodega |
RespuestaBodega |
| PATCH | /api/bodegas/{id}/estado |
ADMIN | ?valor=EstadoBodega |
RespuestaBodega |
flowchart TD
POST["POST /api/bodegas"] --> SAVE["crea Bodega\nestado=ACTIVA (default)"]
PUT["PUT /{id}"] --> UPD["actualiza campos\n(NO toca estado)"]
ESTADO["PATCH /{id}/estado"] --> FREE["set directo, SIN validar transición\n(ACTIVA/INACTIVA/MANTENIMIENTO)"]
USUARIOS["GET /{id}/usuarios"] --> CROSS["★ BodegaController llama directo a\nUsuarioService.listarPorBodega(id)\n(cross-module EN EL CONTROLLER,\nno en BodegaServiceImpl)"]
style FREE fill:#fde9c8
style CROSS fill:#fde9c8
sequenceDiagram
participant C as Cliente (ADMIN)
participant BC as BodegaController
participant US as UsuarioService (módulo usuario)
C->>BC: GET /api/bodegas/{id}/usuarios
Note over BC: BodegaController inyecta UsuarioService directamente<br/>— no pasa por BodegaServiceImpl
BC->>US: listarPorBodega(id)
US-->>BC: List<RespuestaUsuarioBodega>
BC-->>C: 200
flowchart LR
BODEGA["bodega"]
USUARIO["usuario: bodegaId obligatorio\nal registrar trabajador"] --> BODEGA
TAREA["tarea: bodegaId opcional"] --> BODEGA
CONVENIO["convenio: bodegaId opcional"] --> BODEGA
ENTREGA["entrega: bodegaId obligatorio"] --> BODEGA
INVENTARIO["inventario: bodegaId obligatorio\n(clave de LineaInventario)"] --> BODEGA
DASHBOARD["dashboard: conteos ACTIVA/total"] --> BODEGA
-
EstadoBodega(ACTIVA, INACTIVA, MANTENIMIENTO) no tiene máquina de transición — cualquier PATCH es aceptado, igual queproveedor. -
GET /api/bodegas(listado, sin/**) es el único endpoint de todo el módulo accesible a cualquier rol autenticado; todo lo demás (incluidoGET /{id}) exige ADMIN.
Generada a partir de docs/ en el repo — cualquier cambio de arquitectura real debe actualizar primero el código y CLAUDE.md, y luego reflejarse aquí.