from pydantic import BaseModel, Field
from typing import List, Optional
from uuid import UUID
from datetime import datetime


class SearchFilters(BaseModel):
    platforms: List[str]
    maxResults: Optional[int] = 100
    language: Optional[str] = "en"
    from_date: Optional[str] = None
    to_date: Optional[str] = None

class SearchRequest(BaseModel):
    keyword: List[str]
    filters: SearchFilters
    priority: Optional[str] = "normal"


class SearchResponse(BaseModel):
    searchId: UUID
    status: str
    message: str
    timestamp: datetime
    estimatedCompletion: datetime