from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime

class AgentResponse(BaseModel):
    role: str
    reasoning: str
    recommendation: str

class DiscussionRequest(BaseModel):
    topic: str
    context: Optional[str] = None
    timestamp: datetime = None

    def __init__(self, **data):
        super().__init__(**data)
        if self.timestamp is None:
            self.timestamp = datetime.now()

class DiscussionResult(BaseModel):
    request_id: str
    topic: str
    agents_input: List[AgentResponse]
    final_synthesis: str
    created_at: datetime
