from typing import Dict, List, Optional

from pydantic import BaseModel

from app.models.domain.base import ResponseBase


class GraphColoringResponse(BaseModel):
    is_solvable: bool
    colored: Dict[str, int]


class GraphColoringRequest(BaseModel):
    graph: Dict[str, List]


class AttendeesRecommendationRequest(BaseModel):
    initiatorId: str
    meetingRoomId: Optional[str]
    meetingRoomLocation: Optional[str]
    topic: Optional[str]
    seatCount: Optional[int]
    startTime: Optional[str]
    endTime: Optional[str]


class AttendeesRecommendationResult(BaseModel):
    userIdList: List


class AttendeesRecommendationResponse(ResponseBase):
    data: AttendeesRecommendationResult