Endpoints de Expedientes¶
Endpoints para gestion de expedientes (cases). Prefijo: /api/v1/cases.
Listar Expedientes¶
GET /api/v1/cases/¶
Lista expedientes del usuario autenticado con filtros avanzados y paginacion.
Query Parameters:
| Parametro | Tipo | Default | Descripcion |
|---|---|---|---|
page |
int | 1 | Numero de pagina |
page_size |
int | 20 | Elementos por pagina (max 100) |
status |
string | null | active, inactive, archived |
search |
string | null | Buscar en referencia y numero |
date_filter |
string | null | hoy, ayer, ultimos_7_dias, ultimos_30_dias |
date_from |
string | null | Fecha inicio (YYYY-MM-DD) |
date_to |
string | null | Fecha fin (YYYY-MM-DD) |
sector_filter |
string | null | UUID del sector asignado |
trata_filter |
string | null | UUID del sector administrativo |
Response (200):
{
"success": true,
"data": {
"cases": [
{
"id": "uuid",
"case_number": "EE-2025-00001-SMG-ADGEN",
"reference": "Expediente de habilitacion comercial",
"last_modified_at": "2025-01-15T10:30:00",
"case_type": {
"name": "Expediente Administrativo",
"acronym": "EXP-ADM"
},
"access_reason": "ADMINSECTOR",
"admin_sector": {
"acronym": "ADGEN",
"department": "Administracion General"
},
"assigned_sectors": []
}
],
"total": 25,
"page": 1,
"page_size": 20,
"total_pages": 2
},
"message": "Se encontraron 25 expedientes"
}
Archivo: endpoints/cases/list_cases.py
Crear Expediente¶
POST /api/v1/cases/¶
Crea un expediente nuevo con caratula CAEX automatica.
Request:
{
"case_template_id": "uuid-template",
"reference": "Habilitacion comercial - Panaderia El Sol",
"owner_sector_id": "uuid-sector"
}
Proceso:
- Valida template y usuario
- Genera numero de expediente (
EE-2025-00001-SMG-ADGEN) - Crea expediente en BD
- Genera documento CAEX (caratula) automaticamente
- Firma la caratula automaticamente
- Vincula CAEX al expediente
Response (200):
{
"success": true,
"data": {
"case": {
"case_id": "uuid",
"case_number": "EE-2025-00001-SMG-ADGEN"
},
"cover": {
"document_id": "uuid",
"official_number": "CAEX-2025-00001-SMG-ADGEN"
}
},
"message": "Expediente creado exitosamente: EE-2025-00001-SMG-ADGEN"
}
Archivo: endpoints/cases/create_case.py
Plantillas de Expedientes¶
GET /api/v1/cases/templates¶
Obtiene plantillas de expedientes disponibles para el usuario.
Response (200):
{
"success": true,
"data": {
"templates": [
{
"id": "uuid",
"name": "Expediente Administrativo",
"acronym": "EXP-ADM",
"description": "Expediente de habilitacion comercial",
"filing_department_name": "Legal y Tecnica"
}
],
"total": 5
}
}
Transferir Expediente¶
POST /api/v1/cases/{case_id}/transfer¶
Transfiere un expediente a otro sector.
Request:
{
"target_sector_id": "uuid-sector-destino",
"reason": "Transferencia por competencia",
"transfer_ownership": true,
"assigned_user_id": null,
"create_official_doc": false
}
| Campo | Descripcion |
|---|---|
target_sector_id |
Sector destino |
reason |
Motivo (5-500 caracteres) |
transfer_ownership |
true=transfiere propiedad, false=solo asigna tarea |
assigned_user_id |
Usuario especifico (opcional) |
create_official_doc |
Si true, genera PV (Pase de Vista) automatico |
Archivo: endpoints/cases/transfer_case.py
Asignar Tarea¶
POST /api/v1/cases/{case_id}/assign¶
Asigna tarea a otro sector sin transferir propiedad.
Request:
{
"target_sector_id": "uuid-sector",
"reason": "Solicitud de informe tecnico",
"assigned_user_id": null,
"create_official_doc": true
}
Cerrar Asignacion¶
POST /api/v1/cases/{case_id}/close-assign¶
Cierra una asignacion activa.
Request:
Sectores Disponibles¶
GET /api/v1/cases/{case_id}/available-sectors¶
Obtiene sectores disponibles para transferencia o asignacion. Excluye el sector propietario actual.
Usuarios de un Sector¶
GET /api/v1/cases/sectors/{sector_id}/users¶
Lista usuarios activos de un sector para asignacion especifica.
Vincular Documento¶
POST /api/v1/cases/{case_id}/link-document¶
Vincula un documento oficial firmado a un expediente.
Detalle de Expediente¶
GET /api/v1/cases/{case_id}¶
Obtiene detalle completo de un expediente con movimientos, documentos y permisos.
Buscar por Numero¶
GET /api/v1/cases/by-number/{case_number}¶
Busca un expediente por su numero exacto (ej: EE-2025-00001-SMG-ADGEN).