FleetMember


Membresía de un repartidor —representado por su ServiceProfile— en una Fleet. Acumula las estadísticas de servicios y montos del miembro dentro de esa flota y lleva su estado de confirmación y de restricción.

Ciclo de vida y estados

  • Se crea deshabilitado y sin confirmar (si lo crea un admin, se confirma y habilita al vuelo).
  • member_confirmed_at marca la confirmación del miembro.
  • member_restricted_at + restriction_reason marcan una restricción; restringir a un miembro lo deshabilita.
  • Para habilitar (is_enabled), el miembro debe estar confirmado, no restringido y con su ServiceProfile aprobado.

Montos

Todos en céntimos (× 100): total_earned_e2 (ganado), total_deducted_e2 (deducido), total_collected_e2 (cobrado en efectivo). last_collection_on es la fecha de la última liquidación de efectivo.

Notas y gotchas

  • is_enabled lo controla el usuario; los contadores y montos los actualiza el sistema al completar servicios.

Estructura de Datos

Atributo Tipo Descripción
id int
is_enabled bool Si el miembro está activo en la flota (lo controla el usuario)
total_services_count int Servicios totales asignados al miembro
completed_services_count int Servicios completados por el miembro
total_earned_e2 int Total ganado por el miembro, en céntimos (× 100)
total_deducted_e2 int Total deducido al miembro, en céntimos (× 100)
total_collected_e2 int Total cobrado en efectivo por el miembro, en céntimos (× 100)
member_confirmed_at datetime\|null Momento en que el miembro fue confirmado (null si no lo está)
member_restricted_at datetime\|null Momento en que el miembro fue restringido (null si no lo está)
restriction_reason string\|null Motivo de la restricción
last_collection_on datetime\|null Fecha de la última liquidación de efectivo
fleet_id int {@link Fleet} a la que pertenece el miembro
service_profile_id int {@link ServiceProfile} del repartidor
created_at datetime\|null
updated_at datetime\|null
allLogs ApiLog>
fleet Fleet {@link Fleet} a la que pertenece el miembro
logs ApiLog>
serviceProfile ServiceProfile {@link ServiceProfile} del repartidor
{
    "id": 1,
    "is_enabled": true,
    "total_services_count": 95,
    "completed_services_count": 80,
    "total_earned_e2": 19367,
    "total_deducted_e2": 0,
    "total_collected_e2": 0,
    "member_confirmed_at": "2021-07-27 17:15:15",
    "member_restricted_at": null,
    "restriction_reason": null,
    "last_collection_on": null,
    "fleet_id": 2,
    "service_profile_id": 8,
    "created_at": "2023-07-07 14:48:39",
    "updated_at": "2023-07-07 14:48:39"
}

Endpoints

Insertar FleetMember

Insertar FleetMember de Fleet

Agregar miembro a la flota

Añade un repartidor —por su ServiceProfile— a la Fleet. El perfil debe estar aprobado. Si lo agrega un admin, el miembro queda confirmado y habilitado; si lo agrega el propio grupo de proveedores, queda pendiente de confirmación.

Método URI Cabeceras
POST /fleets/{fleetId}/fleet-members Authorization
{
    "service_profile_id": "required|integer|exists:service_profiles,id"
}

Errores de negocio

Código HTTP Cuándo ocurre
ES056 400 El ServiceProfile no está aprobado.

Listar FleetMember

{info} Soporta: Paginación Filters Carga dinámica

Listar miembros de flota

Listado paginado global de FleetMember. Se acota con los filtros estándar (fleet_id, is_enabled, etc.).

Método URI Cabeceras
GET /fleet-members Authorization

Mostrar FleetMember

{info} Soporta: Carga dinámica

Mostrar miembro de flota

Devuelve el FleetMember por su id, con sus estadísticas y estado.

Método URI Cabeceras
GET /fleet-members/{fleetMemberId} Authorization

Actualizar FleetMember

Actualizar miembro de flota

Cambia is_enabled y aplica transiciones de status:

  • confirmed — confirma al miembro y levanta cualquier restricción.
  • restricted — restringe al miembro (requiere reason) y lo deshabilita.

Para dejar al miembro habilitado, debe estar confirmado, sin restricción y con su ServiceProfile aprobado.

Método URI Cabeceras
PATCH /fleet-members/{fleetMemberId} Authorization
{
    "is_enabled": "boolean",
    "status": "string|in:confirmed,restricted",
    "reason": "required_if:status,restricted|string|max:255"
}

Errores de negocio

Código HTTP Cuándo ocurre
ES070 400 No se puede habilitar: el miembro no está confirmado.
ES071 400 El miembro ya está confirmado.
ES072 400 No se puede habilitar: el miembro está restringido.
ES073 400 El miembro ya está restringido.
ES056 400 El ServiceProfile del miembro no está aprobado.

Eliminar FleetMember

Eliminar miembro de flota

Quita al FleetMember de la Fleet.

Método URI Cabeceras
DELETE /fleet-members/{fleetMemberId} Authorization

Relaciones