"""客户增长路由。""" from fastapi import APIRouter, Depends, Query, status from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.core.dependencies import get_current_user from app.models.customer_plan import CustomerAcquisitionPlan from app.models.user import User from app.schemas.common import ApiResponse, success from app.services.customer_growth_agent import generate_customer_plan router = APIRouter(prefix="/customer-plans", tags=["customer-plans"]) @router.get("", response_model=ApiResponse[list]) async def list_plans(company_id: str | None = Query(default=None), db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user)): """获取客户获取方案列表。""" query = select(CustomerAcquisitionPlan) if company_id: query = query.where(CustomerAcquisitionPlan.company_id == company_id) result = await db.execute(query.order_by(CustomerAcquisitionPlan.created_at.desc())) items = result.scalars().all() return success(data=[ { "id": str(i.id), "company_id": str(i.company_id), "target_customer": i.target_customer, "entry_angle": i.entry_angle, "pricing_strategy": i.pricing_strategy, "execution_status": i.execution_status, "result": i.result, } for i in items ]) @router.post("/generate", response_model=ApiResponse[dict]) async def generate_plan(req: dict, user: User = Depends(get_current_user)): """AI 生成客户获取方案。""" result = await generate_customer_plan(req.get("company_context", ""), req.get("lp_resources", "")) return success(data=result)