Source code for src.module.identity.domain.events
"""Identity Context domain events."""
from __future__ import annotations
from dataclasses import dataclass
from typing import ClassVar
from src.share_kernel.domain.events import DomainEvent, register_event
[docs]
@register_event
@dataclass(frozen=True)
class UserCreated(DomainEvent):
"""Emitted when a new user registers."""
event_type: ClassVar[str] = "identity.user_created"
user_id: str = ""
email: str = ""
[docs]
@register_event
@dataclass(frozen=True)
class UserUpdated(DomainEvent):
"""Emitted when a user's profile is updated."""
event_type: ClassVar[str] = "identity.user_updated"
user_id: str = ""
[docs]
@register_event
@dataclass(frozen=True)
class EmailVerified(DomainEvent):
"""Emitted when a user verifies their email address."""
event_type: ClassVar[str] = "identity.email_verified"
user_id: str = ""
email: str = ""
[docs]
@register_event
@dataclass(frozen=True)
class OTPDeviceConfirmed(DomainEvent):
"""Emitted when a user confirms an OTP device."""
event_type: ClassVar[str] = "identity.otp_device_confirmed"
user_id: str = ""
device_type: str = ""