API - Gestión de Solicitudes
Visión General
Endpoints para la gestión de solicitudes de mantenimiento, reparaciones y servicios en las propiedades.
GET /requests/all
Obtener todas las solicitudes.
Query Parameters
status: Estado de la solicitud (pending, in_progress, completed, cancelled)property_id: Filtrar por propiedaduser_id: Filtrar por usuario solicitantepriority: Prioridad (low, medium, high, urgent)category: Categoría (plumbing, electrical, cleaning, etc.)
Response Success (200)
{
"success": true,
"data": [
{
"id": 1,
"title": "Reparación de tubería en cocina",
"description": "La tubería bajo el fregadero presenta una fuga menor...",
"category": "plumbing",
"priority": "high",
"status": "pending",
"property": {
"id": 25,
"title": "Apartamento Moderno",
"address": "Carrera 15 #67-89"
},
"requester": {
"id": 124,
"name": "María García",
"phone": "+57 320 987 6543"
},
"assigned_to": null,
"estimated_cost": 150000,
"actual_cost": null,
"images": [
"https://bucket.s3.amazonaws.com/requests/1/image1.jpg"
],
"created_at": "2024-01-15T10:30:00Z",
"due_date": "2024-01-18T00:00:00Z"
}
],
"count": 8
}
POST /request/create
Crear nueva solicitud.
Request
{
"title": "Cambio de bombilla en sala",
"description": "La bombilla principal de la sala no funciona, necesita reemplazo",
"category": "electrical",
"priority": "medium",
"property_id": 25,
"estimated_cost": 25000,
"due_date": "2024-01-20",
"images": ["base64_image_data"]
}
Response Success (201)
{
"success": true,
"message": "Solicitud creada exitosamente",
"data": {
"id": 15,
"title": "Cambio de bombilla en sala",
"status": "pending",
"tracking_number": "REQ-2024-001015"
}
}
PUT /request/update
Actualizar solicitud existente.
Request
{
"request_id": 15,
"status": "in_progress",
"assigned_to": 200,
"estimated_cost": 30000,
"progress_notes": "Técnico asignado, materiales solicitados"
}
Response Success (200)
{
"success": true,
"message": "Solicitud actualizada exitosamente"
}
GET /request/get
Obtener detalles de solicitud específica.
Query Parameters
request_id: ID de la solicitud
Response Success (200)
{
"success": true,
"data": {
"id": 15,
"title": "Cambio de bombilla en sala",
"description": "La bombilla principal de la sala no funciona, necesita reemplazo",
"category": "electrical",
"priority": "medium",
"status": "completed",
"property": {
"id": 25,
"title": "Apartamento Moderno",
"address": "Carrera 15 #67-89",
"city": "Medellín"
},
"requester": {
"id": 124,
"name": "María García",
"email": "maria@email.com",
"phone": "+57 320 987 6543"
},
"assigned_to": {
"id": 200,
"name": "Carlos Técnico",
"phone": "+57 310 555 0123",
"specialty": "Electricidad"
},
"estimated_cost": 30000,
"actual_cost": 28000,
"progress_log": [
{
"timestamp": "2024-01-15T10:30:00Z",
"status": "pending",
"notes": "Solicitud creada"
},
{
"timestamp": "2024-01-15T14:20:00Z",
"status": "in_progress",
"notes": "Técnico asignado"
},
{
"timestamp": "2024-01-16T09:45:00Z",
"status": "completed",
"notes": "Bombilla reemplazada exitosamente"
}
],
"images": [
{
"id": 1,
"url": "https://bucket.s3.amazonaws.com/requests/15/before.jpg",
"type": "before",
"uploaded_at": "2024-01-15T10:30:00Z"
},
{
"id": 2,
"url": "https://bucket.s3.amazonaws.com/requests/15/after.jpg",
"type": "after",
"uploaded_at": "2024-01-16T09:45:00Z"
}
],
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-16T09:45:00Z"
}
}
POST /request/assign
Asignar solicitud a técnico.
Request
{
"request_id": 15,
"technician_id": 200,
"scheduled_date": "2024-01-16T09:00:00Z",
"notes": "Asignación urgente por alta prioridad"
}
Response Success (200)
{
"success": true,
"message": "Solicitud asignada exitosamente",
"data": {
"assigned_to": "Carlos Técnico",
"scheduled_date": "2024-01-16T09:00:00Z"
}
}
GET /requests/stats
Obtener estadísticas de solicitudes.
Response Success (200)
{
"success": true,
"data": {
"total_requests": 156,
"by_status": {
"pending": 12,
"in_progress": 8,
"completed": 130,
"cancelled": 6
},
"by_category": {
"plumbing": 45,
"electrical": 32,
"cleaning": 28,
"maintenance": 35,
"security": 16
},
"by_priority": {
"low": 40,
"medium": 78,
"high": 32,
"urgent": 6
},
"average_resolution_time": "2.5 days",
"total_cost": 15600000,
"average_cost": 100000
}
}
Estados de Solicitud
pending
- Descripción: Solicitud creada, esperando asignación
- Acciones: Asignar técnico, actualizar prioridad
in_progress
- Descripción: Técnico asignado, trabajo en progreso
- Acciones: Actualizar progreso, cargar imágenes
completed
- Descripción: Trabajo terminado exitosamente
- Acciones: Cerrar solicitud, facturar
cancelled
- Descripción: Solicitud cancelada
- Acciones: Registrar motivo de cancelación
Categorías de Solicitud
plumbing
- Reparaciones de tuberías
- Problemas de drenaje
- Instalación de grifos
electrical
- Problemas eléctricos
- Cambio de bombillas
- Instalación de interruptores
cleaning
- Limpieza profunda
- Limpieza de alfombras
- Servicios de aseo
maintenance
- Mantenimiento preventivo
- Pintura
- Reparaciones menores
security
- Cerraduras
- Sistemas de seguridad
- Cámaras
Niveles de Prioridad
low
- Tiempo esperado: 5-7 días
- Ejemplos: Pintura, mejoras estéticas
medium
- Tiempo esperado: 2-3 días
- Ejemplos: Reparaciones menores
high
- Tiempo esperado: 1 día
- Ejemplos: Fugas menores, problemas eléctricos
urgent
- Tiempo esperado: 4-6 horas
- Ejemplos: Fugas mayores, problemas de seguridad