from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from pydantic import BaseModel from typing import Optional from app.database import get_db from app.api.v1.deps import get_current_user_id from app.services.certification import CertificationService router = APIRouter() class CertSubmitRequest(BaseModel): cert_type: str personal_name: Optional[str] = None personal_id: Optional[str] = None company_name: Optional[str] = None tax_id: Optional[str] = None business_license_url: Optional[str] = None @router.post("/submit") async def submit_certification( data: CertSubmitRequest, user_id: str = Depends(get_current_user_id), db: AsyncSession = Depends(get_db), ): service = CertificationService(db) result = await service.submit(user_id, data.model_dump()) if "error" in result: raise HTTPException(status_code=400, detail=result["error"]) return {"success": True, "data": result} @router.get("/status") async def get_certification_status( user_id: str = Depends(get_current_user_id), db: AsyncSession = Depends(get_db), ): service = CertificationService(db) cert = await service.get_user_cert(user_id) return {"success": True, "data": cert}