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 = ""