Riders API
Base path: /api/riders
File: ayts-api/src/routes/riders.ts
Auth required: Admin (management), Rider (own operations)
GET /api/riders
List all riders. Requires admin role.
Query params: status (available | on_delivery | offline), limit, offset
Response 200:
{
"success": true,
"riders": [{
"id": "uuid",
"userId": "uuid",
"vehicleType": "motorcycle",
"plateNumber": "ABC-1234",
"status": "available",
"totalDeliveries": 47,
"user": { "firstName": "Pedro", "lastName": "Santos", "phone": "+63917..." }
}]
}
GET /api/riders/:id
Get a single rider's profile and stats.
POST /api/riders
Register a new rider. Requires admin role.
{
"userId": "uuid",
"vehicleType": "motorcycle" | "bicycle" | "car",
"plateNumber": "ABC-1234",
"licenseNumber": "...",
"serviceArea": "Cebu City"
}
Automatically updates the user's role to rider.
PATCH /api/riders/:id/status
Update rider availability status. Rider can update own status; admin can update any.
{ "status": "available" | "on_delivery" | "offline" }
GET /api/riders/:id/orders
Get delivery history for a rider.
Query params: status, limit, offset
GET /api/riders/available
Get available riders for order assignment. Requires admin role.
Returns riders with status: 'available' ordered by proximity (if location provided).