from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
from ...domain.entities.search_request import SearchPlatform, SearchType

class CreateSearchRequestDTO(BaseModel):
    keywords: List[str]
    platforms: List[SearchPlatform]
    search_type: SearchType = SearchType.MANUAL
    user_id: Optional[str] = None
    scheduled_at: Optional[datetime] = None

class SearchRequestResponseDTO(BaseModel):
    id: str
    keywords: List[str]
    platforms: List[SearchPlatform]
    search_type: SearchType
    status: str
    created_at: datetime
    user_id: Optional[str] = None
    scheduled_at: Optional[datetime] = None

class SearchTaskDTO(BaseModel):
    id: str
    search_request_id: str
    platform: SearchPlatform
    keywords: List[str]
    status: str
    created_at: datetime
