feat: add DomainEvent base class and 5 domain event types

This commit is contained in:
2026-07-29 01:46:58 -04:00
parent 3bae739bc0
commit 7cf7e56a93
3 changed files with 123 additions and 0 deletions

View File

@@ -3,6 +3,12 @@ from .classified_ad_id import ClassifiedAdId as ClassifiedAdId
from .classified_ad_state import ClassifiedAdState as ClassifiedAdState
from .classified_ad_text import ClassifiedAdText as ClassifiedAdText
from .classified_ad_title import ClassifiedAdTitle as ClassifiedAdTitle
from .domain_event import ClassifiedAdCreated as ClassifiedAdCreated
from .domain_event import ClassifiedAdPriceUpdated as ClassifiedAdPriceUpdated
from .domain_event import ClassifiedAdSentForReview as ClassifiedAdSentForReview
from .domain_event import ClassifiedAdTextUpdated as ClassifiedAdTextUpdated
from .domain_event import ClassifiedAdTitleChanged as ClassifiedAdTitleChanged
from .domain_event import DomainEvent as DomainEvent
from .invalid_entity_state_exception import (
InvalidEntityStateException as InvalidEntityStateException,
)

View File

@@ -0,0 +1,36 @@
from dataclasses import dataclass
from decimal import Decimal
from uuid import UUID
class DomainEvent:
pass
@dataclass(frozen=True)
class ClassifiedAdCreated(DomainEvent):
id: UUID
owner_id: UUID
@dataclass(frozen=True)
class ClassifiedAdTitleChanged(DomainEvent):
id: UUID
title: str
@dataclass(frozen=True)
class ClassifiedAdTextUpdated(DomainEvent):
id: UUID
ad_text: str
@dataclass(frozen=True)
class ClassifiedAdPriceUpdated(DomainEvent):
id: UUID
price: Decimal
@dataclass(frozen=True)
class ClassifiedAdSentForReview(DomainEvent):
id: UUID