import boto3 from uuid import UUID from fastapi import APIRouter, Depends, HTTPException, Query from sqlmodel import select from backend.app.dependencies import validate_token from backend.app.config import get_settings from backend.app.db.connection import get_db_session from backend.app.db.models.bulk_address_uploads import BulkAddressUpload from backend.app.bulk_uploads.schema import PostcodeSplitterTriggerRequest router = APIRouter( prefix="/bulk-uploads", tags=["bulk-uploads"], dependencies=[Depends(validate_token)], ) @router.post("/trigger-postcode-splitter", status_code=202) async def trigger_postcode_splitter(req: PostcodeSplitterTriggerRequest): settings = get_settings() try: sqs = boto3.client("sqs", settings.AWS_DEFAULT_REGION) response = sqs.send_message( QueueUrl=settings.POSTCODE_SPLITTER_SQS_URL, MessageBody=req.model_dump_json(), ) except Exception as e: raise HTTPException(status_code=500, detail=f"SQS error: {e}") return { "task_id": req.task_id, "sub_task_id": req.sub_task_id, "sqs_message_id": response.get("MessageId"), }