from fastapi import APIRouter, Depends, Query from pydantic import BaseModel from sqlalchemy.orm import Session from app.database import get_db from app.analyzers.ai_analyzer import AIAnalyzer router = APIRouter(prefix="/ai", tags=["ai"]) class TitleAnalysisRequest(BaseModel): platform: str title: str class NicheAnalysisRequest(BaseModel): keyword: str platform: str class TrendPredictionRequest(BaseModel): platform: str class RevenueCalcRequest(BaseModel): platform: str views: int category: str = "general" region: str = "us" @router.post("/analyze-title") def analyze_title(request: TitleAnalysisRequest, db: Session = Depends(get_db)): analyzer = AIAnalyzer(db) result = analyzer.analyze_title(platform=request.platform, title=request.title) return result @router.post("/analyze-niche") def analyze_niche(request: NicheAnalysisRequest, db: Session = Depends(get_db)): analyzer = AIAnalyzer(db) result = analyzer.analyze_niche(keyword=request.keyword, platform=request.platform) return result @router.post("/predict-trend") def predict_trend(request: TrendPredictionRequest, db: Session = Depends(get_db)): analyzer = AIAnalyzer(db) result = analyzer.predict_trend(platform=request.platform) return result @router.post("/calculate-revenue") def calculate_revenue(request: RevenueCalcRequest, db: Session = Depends(get_db)): analyzer = AIAnalyzer(db) result = analyzer.calculate_revenue( platform=request.platform, views=request.views, category=request.category, region=request.region, ) return result