# Updated response models to support structured search results
from pydantic import BaseModel
from typing import List, Optional, Dict, Any

class SearchResultData(BaseModel):
    """Search result with separate content and URL"""
    content: str
    url: str
    title: Optional[str] = None
    snippet: Optional[str] = None
    source: Optional[str] = None
    domain: Optional[str] = None
    relevance_score: Optional[float] = None

class AdvancedChatbotResponse(BaseModel):
    """Updated response model with structured search results"""
    response: str
    search_results: Optional[List[str]] = []
    search_results_data: Optional[List[SearchResultData]] = []  # New structured field
    context: Optional[Dict[str, Any]] = None
    metadata: Optional[Dict[str, Any]] = None

class EnhancedAdvancedChatbotResponse(BaseModel):
    """Enhanced response with structured search results"""
    type: str = "complete"
    data: Dict[str, Any]

class ResponseData(BaseModel):
    """Response data structure"""
    response: str
    search_results: List[str] = []
    search_results_data: List[SearchResultData] = []  # New structured field
    context: Optional[Dict[str, Any]] = None
    metadata: Optional[Dict[str, Any]] = None