Inventario
Gestión de Dispositivos (tipos de hardware) y Equipos (unidades físicas del laboratorio).
Modelos de Datos
Dispositivo
tabla: dispositivo| Campo | Tipo | Constraint | Descripción |
|---|---|---|---|
| id | integer | auto | Clave primaria autoincremental. |
| name | string(100) | requerido único | Nombre del tipo de dispositivo. Debe ser único. |
| descripcion | text | opcional | Descripción detallada del tipo de dispositivo. |
Equipo
tabla: equipo| Campo | Tipo | Constraint | Descripción |
|---|---|---|---|
| id | integer | auto | Clave primaria autoincremental. |
| dispositivo | FK → Dispositivo | requerido | ID del dispositivo al que pertenece. Se elimina en cascada. |
| dispositivo_name | string | solo lectura | Nombre del dispositivo asociado (campo virtual del serializer). |
| marca | string(100) | opcional | Marca del equipo (ej. Dell, HP, Lenovo). |
| modelo | string(100) | opcional | Modelo específico del equipo. |
| identificador | string(100) | requerido único | Código o número de serie único que identifica físicamente al equipo. |
| estacion | integer | requerido único | Número de estación de trabajo asignada. |
| descripcion | text | opcional | Observaciones o detalles adicionales del equipo. |
| date_reg | date | requerido | Fecha de ingreso al inventario. Formato: YYYY-MM-DD. |
| is_active | boolean | opcional | Indica si el equipo está activo. Predeterminado: true. |
Consumible
tabla: consumible| Campo | Tipo | Constraint | Descripción |
|---|---|---|---|
| id | integer | auto | Clave primaria autoincremental. |
| name | string(100) | requerido único | Nombre del consumible. Debe ser único. |
| cantidad | integer | opcional | Stock disponible. Predeterminado: 0. |
| descripcion | text | opcional | Descripción o notas adicionales. |
Dispositivos
CRUD completo sobre los tipos de dispositivos del inventario.
-id (más recientes primero).Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
| page | integer | Número de página (predeterminado: 1). |
| page_size | integer | Registros por página (predeterminado: 10, máx: 100). |
Respuesta exitosa
{ "links": { "next": "http://127.0.0.1:8000/api/v1/dispositivos?page=2", "previous": null }, "items": 15, "status": "ok", "page": "1/2", "data": [ { "id": 3, "name": "Computadora de Escritorio", "descripcion": "PC de escritorio con torre ATX" } ] }
Cuerpo de la petición (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | requerido | Nombre único del dispositivo (máx. 100 caracteres). |
| descripcion | string | opcional | Descripción del tipo de dispositivo. |
Ejemplo de petición
{ "name": "Monitor", "descripcion": "Pantalla LED 24 pulgadas" }
Respuestas
{ "status": "ok", "message": "Registro creado exitosamente" }
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | integer | ID del dispositivo a consultar. |
{ "status": "ok", "data": { "id": 1, "name": "Monitor", "descripcion": "Pantalla LED 24 pulgadas" } }
Cuerpo de la petición (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | requerido | Nombre único del dispositivo. |
| descripcion | string | opcional | Descripción del tipo de dispositivo. |
{ "status": "ok", "message": "Registro actualizado exitosamente" }
CASCADE).
{ "status": "ok", "message": "Registro eliminado exitosamente" }
Equipos
Gestión de los equipos físicos del laboratorio, vinculados a un tipo de dispositivo.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
| page | integer | Número de página (predeterminado: 1). |
| page_size | integer | Registros por página (predeterminado: 10, máx: 50). |
{ "links": { ... }, "items": 30, "status": "ok", "page": "1/3", "data": [ { "id": 1, "dispositivo": 2, "dispositivo_name": "Computadora de Escritorio", "marca": "Dell", "modelo": "OptiPlex 7090", "identificador": "SN-001-DELL", "estacion": 1, "descripcion": null, "date_reg": "2024-03-15", "is_active": true } ] }
Cuerpo de la petición (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| dispositivo | integer | requerido | ID del dispositivo al que pertenece el equipo. |
| marca | string | opcional | Marca del fabricante. |
| modelo | string | opcional | Modelo del equipo. |
| identificador | string | requerido | Código único de identificación (número de serie, etc.). |
| estacion | integer | requerido | Número de estación de trabajo (único). |
| descripcion | string | opcional | Notas adicionales sobre el equipo. |
| date_reg | string (date) | requerido | Fecha de ingreso al inventario. Formato: YYYY-MM-DD. |
Ejemplo de petición
{ "dispositivo": 1, "marca": "HP", "modelo": "ProDesk 400 G7", "identificador": "INV-2024-015", "estacion": 15, "descripcion": "Equipo con SSD 512GB", "date_reg": "2024-09-01" }
{ "status": "ok", "data": "registro creado correctamente" }
{ "status": "ok", "data": { "id": 15, "dispositivo": 1, "dispositivo_name": "Computadora de Escritorio", "marca": "HP", "modelo": "ProDesk 400 G7", "identificador": "INV-2024-015", "estacion": 15, "descripcion": "Equipo con SSD 512GB", "date_reg": "2024-09-01", "is_active": true } }
Mismos campos que el POST. Ver sección anterior para referencia.
{ "status": "ok", "data": "registro eliminado correctamente" }
-id.Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
| dispositivo_id | integer | ID del dispositivo cuyos equipos se desean consultar. |
La estructura de la respuesta es la misma que en GET /api/v1/equipos.
Consumibles
Gestión del stock de materiales consumibles del laboratorio (cables, cartuchos, pilas, etc.).
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
| page | integer | Número de página (predeterminado: 1). |
| page_size | integer | Registros por página (predeterminado: 10, máx: 50). |
{ "links": { ... }, "items": 8, "status": "ok", "page": "1/1", "data": [ { "id": 1, "name": "Cable HDMI", "cantidad": 12, "descripcion": "Cables de repuesto para monitores" } ] }
Cuerpo de la petición (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | requerido | Nombre único del consumible (máx. 100 caracteres). |
| cantidad | integer | opcional | Cantidad en stock. Predeterminado: 0. |
| descripcion | string | opcional | Descripción del consumible. |
Ejemplo de petición
{ "name": "Cable HDMI", "cantidad": 12, "descripcion": "Cables de repuesto para monitores" }
{ "status": "ok", "message": "Registro creado exitosamente" }
{ "status": "ok", "data": { "id": 1, "name": "Cable HDMI", "cantidad": 12, "descripcion": "Cables de repuesto para monitores" } }
Mismos campos que el POST. Ver sección anterior para referencia.
{ "status": "ok", "message": "Registro actualizado exitosamente" }
{ "status": "ok", "message": "Registro eliminado exitosamente" }