o2o-infinith-backend/app/api/clinics.py

41 lines
1.3 KiB
Python

import uuid6
from fastapi import APIRouter, Depends, status
from common.deps import verify_api_key
from common.db import insert_hospital
from models.clinic import ClinicCreate, ClinicCreateResponse, ClinicHistoryResponse, RunSummary
router = APIRouter(prefix="/api/clinics", tags=["clinics"], dependencies=[Depends(verify_api_key)])
@router.post("", status_code=status.HTTP_201_CREATED, response_model=ClinicCreateResponse)
async def create_clinic(body: ClinicCreate):
hospital_id = str(uuid6.uuid7())
row = await insert_hospital(hospital_id, body.name, body.name_en, body.address, body.url)
return ClinicCreateResponse(
id=hospital_id,
url=body.url,
name=body.name,
created_at=str(row["created_at"]),
)
# Not done
@router.get("/{id}/history", response_model=ClinicHistoryResponse)
async def get_clinic_history(id: str):
return ClinicHistoryResponse(
clinic_id=id,
runs=[
RunSummary(
run_id="22222222-2222-2222-2222-222222222222",
status="complete",
started_at="2026-04-20T09:00:00Z",
completed_at="2026-04-20T09:01:30Z",
overall_score=82,
)
],
metrics_timeseries={
"youtube_subscribers": [{"date": "2026-04-20", "value": 12345}]
},
)