feat: raise ClassifiedAdSentForReview event in request_to_publish

This commit is contained in:
2026-07-29 02:15:40 -04:00
parent 035cfdf4fc
commit b8507e8941
2 changed files with 11 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ from domain.marketplace.classified_ad_text import ClassifiedAdText
from domain.marketplace.classified_ad_title import ClassifiedAdTitle from domain.marketplace.classified_ad_title import ClassifiedAdTitle
from domain.marketplace.domain_event import ( from domain.marketplace.domain_event import (
ClassifiedAdPriceUpdated, ClassifiedAdPriceUpdated,
ClassifiedAdSentForReview,
ClassifiedAdTextUpdated, ClassifiedAdTextUpdated,
ClassifiedAdTitleChanged, ClassifiedAdTitleChanged,
DomainEvent, DomainEvent,
@@ -48,7 +49,10 @@ class ClassifiedAd(Entity):
def request_to_publish(self): def request_to_publish(self):
self._ensure_valid_state() self._ensure_valid_state()
return replace(self, state=ClassifiedAdState.PendingReview) updated = replace(self, state=ClassifiedAdState.PendingReview)
return updated.raise_event(
ClassifiedAdSentForReview(id=self.id.value)
)
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd: def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
updated = replace(self, title=title) updated = replace(self, title=title)

View File

@@ -153,6 +153,12 @@ def test_request_to_publish_sets_state_to_pending_review():
assert published.state == ClassifiedAdState.PendingReview assert published.state == ClassifiedAdState.PendingReview
changes = published.get_changes()
assert len(changes) == 1
event = changes[0]
assert isinstance(event, ClassifiedAdSentForReview)
assert event.id == ad.id.value
def test_request_to_publish_fails_when_title_empty(): def test_request_to_publish_fails_when_title_empty():
ad = ClassifiedAd( ad = ClassifiedAd(