#11 Add model for events

This commit is contained in:
Vasily Domakov
2026-02-09 23:17:42 +03:00
parent 9a4c47bd8e
commit de48c30c78

33
itd/models/event.py Normal file
View File

@@ -0,0 +1,33 @@
from uuid import UUID
from datetime import datetime
from typing import Literal
from pydantic import BaseModel, Field
from itd.enums import NotificationType, NotificationTargetType
from itd.models.user import UserNotification
class StreamConnect(BaseModel):
"""Событие подключения к SSE потоку"""
user_id: UUID = Field(alias='userId')
timestamp: int
class StreamNotification(BaseModel):
"""Уведомление из SSE потока"""
id: UUID
type: NotificationType
target_type: NotificationTargetType | None = Field(None, alias='targetType')
target_id: UUID | None = Field(None, alias='targetId')
preview: str | None = None
read_at: datetime | None = Field(None, alias='readAt')
created_at: datetime = Field(alias='createdAt')
user_id: UUID = Field(alias='userId')
actor: UserNotification
read: bool = False
sound: bool = True