Skip to main content

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 propiedad
  • user_id: Filtrar por usuario solicitante
  • priority: 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