from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from pydantic import BaseModel from app.database import get_db from app.services.onboarding import OnboardingService from app.api.v1.deps import get_current_user_id router = APIRouter() class OnboardingRequest(BaseModel): name: str description: str category: str = "" target: str = "US importers" @router.get("/status") async def get_status( user_id: str = Depends(get_current_user_id), db: AsyncSession = Depends(get_db), ): service = OnboardingService(db) return await service.check_status(user_id) @router.post("/product") async def create_first_product( data: OnboardingRequest, user_id: str = Depends(get_current_user_id), db: AsyncSession = Depends(get_db), ): if not data.name.strip(): raise HTTPException(status_code=400, detail="Product name is required") service = OnboardingService(db) return await service.generate_first_product( user_id=user_id, name=data.name.strip(), description=data.description.strip(), category=data.category, target=data.target, )