import uuid
from pydantic import BaseModel, Field

from domains.notifications.models import NotificationType

class NotificationBase(BaseModel):
    title: str = Field(..., description='title of the notification')
    description: str | None = Field(None, description='description of the notification')
    type: NotificationType = Field(..., description='type of the notification')
    group_id: uuid.UUID | None = Field(None, description='group id of the notification')

class NotificationCreate(NotificationBase):
    receiver_id: uuid.UUID = Field(..., description='receiver id of the notification')
    sender_id: uuid.UUID | None = Field(None, description='sender id of the notification')

class NotificationResponse(NotificationBase):
    id: uuid.UUID = Field(..., description='notification id')
    is_accepted: bool | None = Field(..., description='is accepted')
    receiver_id: uuid.UUID = Field(..., description='receiver id of the notification')
    sender_id: uuid.UUID | None = Field(..., description='sender id of the notification')
    
    class Config:
        from_attributes = True

class NotificationAction(BaseModel):
    is_accepted: bool = Field(..., description='is accepted')
