feat: add UpdateText and UpdatePrice to ClassifiedAd with domain events
This commit is contained in:
@@ -9,6 +9,8 @@ from domain.marketplace.classified_ad_state import ClassifiedAdState
|
||||
from domain.marketplace.classified_ad_text import ClassifiedAdText
|
||||
from domain.marketplace.classified_ad_title import ClassifiedAdTitle
|
||||
from domain.marketplace.domain_event import (
|
||||
ClassifiedAdPriceUpdated,
|
||||
ClassifiedAdTextUpdated,
|
||||
ClassifiedAdTitleChanged,
|
||||
DomainEvent,
|
||||
)
|
||||
@@ -54,3 +56,17 @@ class ClassifiedAd(Entity):
|
||||
return updated.raise_event(
|
||||
ClassifiedAdTitleChanged(id=self.id.value, title=title.title)
|
||||
)
|
||||
|
||||
def update_text(self, text: ClassifiedAdText) -> ClassifiedAd:
|
||||
updated = replace(self, text=text)
|
||||
updated._ensure_valid_state()
|
||||
return updated.raise_event(
|
||||
ClassifiedAdTextUpdated(id=self.id.value, ad_text=text.text)
|
||||
)
|
||||
|
||||
def update_price(self, price: Price) -> ClassifiedAd:
|
||||
updated = replace(self, price=price)
|
||||
updated._ensure_valid_state()
|
||||
return updated.raise_event(
|
||||
ClassifiedAdPriceUpdated(id=self.id.value, price=price.amount)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user