fender-kyscxr/endpoints/deliveries.post.py
2025-03-23 07:51:12 +00:00

42 lines
1.1 KiB
Python

from fastapi import APIRouter, HTTPException
from datetime import datetime, timedelta
import uuid
deliveries = [] # In-memory storage
router = APIRouter()
@router.post("/deliveries")
async def create_delivery(
pickup_time: datetime,
delivery_time: datetime,
delay_minutes: int = 0
):
"""Demo delivery scheduling endpoint"""
if pickup_time >= delivery_time:
raise HTTPException(status_code=400, detail="Pickup must be before delivery")
delivery_id = str(uuid.uuid4())
adjusted_delivery = delivery_time + timedelta(minutes=delay_minutes)
deliveries.append({
"id": delivery_id,
"pickup_time": pickup_time,
"delivery_time": adjusted_delivery,
"status": "scheduled"
})
return {
"message": "Delivery scheduled successfully",
"delivery_id": delivery_id,
"schedule": {
"pickup": pickup_time.isoformat(),
"delivery": adjusted_delivery.isoformat(),
"delay_applied": delay_minutes
},
"features": {
"tracking_enabled": True,
"notifications": True
}
}