from pydantic import BaseModel

from trauma.api.common.dto import Paging
from trauma.api.data.model import EntityModelExtended
from trauma.api.message.model import MessageModel
from trauma.core.wrappers import TraumaResponseWrapper


class CreateMessageRequest(BaseModel):
    text: str

class MessageWrapper(TraumaResponseWrapper[MessageModel]):
    pass


class AllMessageResponse(BaseModel):
    paging: Paging
    data: list[MessageModel]


class AllMessageWrapper(TraumaResponseWrapper[AllMessageResponse]):
    pass


class CreateMessageResponse(BaseModel):
    text: str
    entities: list[EntityModelExtended] | None = None