← Volver a RepartidoresController

🚚 Gestión de Repartidores

Endpoints para la gestión CRUD completa de repartidores del sistema

Descripción General

Los endpoints de Gestión de Repartidores proporcionan las operaciones fundamentales para administrar los repartidores del sistema RestMaster. Estos endpoints manejan la información básica de los repartidores que realizan entregas a domicilio, incluyendo su identificación y datos personales.

🎯 Características de la Gestión de Repartidores

  • Identificación única: Cada repartidor tiene un ID único en el sistema
  • Información básica: Nombre completo del repartidor
  • Integración con facturas: Asociación con pedidos de reparto
  • Servicio a domicilio: Gestión de entregas a clientes
  • Validación de datos: Verificación de integridad de la información

Endpoints Disponibles

GET /Master/Repartidores/GetRepartidores

Obtiene todos los repartidores registrados en el sistema. Este endpoint devuelve una lista completa de todos los repartidores disponibles para realizar entregas a domicilio.
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Lista de repartidores devuelta exitosamente
{ "repartidor": 1.0, "nombre": "Juan Pérez" }
500 Internal Server Error
Error interno del servidor

GET /Master/Repartidores/GetRepartidor/{id}

Obtiene un repartidor específico por su ID. Este endpoint permite recuperar la información detallada de un repartidor en particular.
Parámetros de ruta:
  • id (double, requerido): ID único del repartidor
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Repartidor encontrado y devuelto
404 Not Found
Repartidor no encontrado
500 Internal Server Error
Error interno del servidor

POST /Master/Repartidores/AddRepartidor

Crea un nuevo repartidor en el sistema. Este endpoint permite agregar un nuevo repartidor al equipo de entrega a domicilio.
Body (JSON):
{ "repartidor": 0.0, "nombre": "María García" }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
201 Created
Repartidor creado exitosamente
{ "repartidor": 2.0, "nombre": "María García" }
500 Internal Server Error
Error interno del servidor

PUT /Master/Repartidores/UpdateRepartidor/{id}

Actualiza un repartidor existente en el sistema. Este endpoint permite modificar la información de un repartidor ya registrado.
Parámetros de ruta:
  • id (double, requerido): ID del repartidor a actualizar
Body (JSON):
{ "repartidor": 1.0, "nombre": "Juan Pérez Actualizado" }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Repartidor actualizado exitosamente
404 Not Found
Repartidor no encontrado
500 Internal Server Error
Error interno del servidor

DELETE /Master/Repartidores/DeleteRepartidor/{id}

Elimina un repartidor del sistema. Este endpoint permite remover un repartidor del equipo de entrega.
Parámetros de ruta:
  • id (double, requerido): ID del repartidor a eliminar
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Repartidor eliminado exitosamente
{ "repartidor": 1.0, "nombre": "Juan Pérez" }
404 Not Found
Repartidor no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - Repartidore

Propiedades del modelo Repartidore:
  • Repartidor (double): Identificador único del repartidor (clave primaria)
  • Nombre (string, 50 chars): Nombre completo del repartidor

🔑 Características del Modelo

  • Clave primaria: El campo Repartidor es la clave primaria única
  • Índice de nombre: Existe un índice en el campo Nombre para búsquedas eficientes
  • Relación 1:1: Cada repartidor puede tener una foto asociada
  • Integración: Se relaciona con facturas y pedidos de reparto

Servicio Utilizado

IRepartidoresService - Servicio principal para la gestión de repartidores
  • GetRepartidores(): Obtiene todos los repartidores
  • GetRepartidor(): Obtiene un repartidor por ID
  • AddRepartidor(): Crea un nuevo repartidor
  • UpdateRepartidor(): Actualiza un repartidor existente
  • DeleteRepartidor(): Elimina un repartidor

Casos de Uso Comunes

🎯 Escenarios de Aplicación

  • Gestión de personal: Administrar el equipo de repartidores
  • Asignación de pedidos: Asignar repartidores a entregas específicas
  • Control de calidad: Mantener información actualizada de repartidores
  • Reportes de entrega: Generar reportes por repartidor
  • Integración con facturas: Asociar repartidores con pedidos de reparto

⚠️ Consideraciones de Seguridad

  • Los repartidores son datos críticos para el servicio a domicilio
  • Se recomienda implementar auditoría de cambios en repartidores
  • Validar que el usuario tenga permisos para gestionar repartidores
  • Considerar el impacto de eliminar repartidores en pedidos activos
  • Verificar que no haya pedidos pendientes antes de eliminar