/
Nastiks
/
Python
Обзор
Документация
Войти
/
Nastiks
/
Python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
event.py
35 строк
1 KB
Nastiks
.
15 ноя 2025, 22:12
15 ноя 2025, 22:12
54e5715
Код
Авторство
О чём код?
from dataclasses import dataclass, field from typing import List import datetime # Событие предметной области UserLoggedIn @dataclass(frozen=True) class UserLoggedIn: user_id: str timestamp: datetime.datetime = field(default_factory=datetime.datetime.utcnow) # Агрегат User, который генерирует событие UserLoggedIn class User: def __init__(self, user_id: str): self.user_id = user_id self._events: List[UserLoggedIn] = [] def login(self): event = UserLoggedIn(user_id=self.user_id) self._apply(event) self._events.append(event) def _apply(self, event: UserLoggedIn): # здесь можно менять состояние агрегата, сейчас простой пример события pass @property def events(self) -> List[UserLoggedIn]: return self._events # Пример использования user = User(user_id="12345") user.login() for event in user.events: print(f"UserLoggedIn event generated for user_id={event.user_id} at {event.timestamp}")