refactor: use dataclasses.replace instead of manual field construction
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field, replace
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
from domain.framework.entity import Entity
|
from domain.framework.entity import Entity
|
||||||
@@ -46,26 +46,10 @@ class ClassifiedAd(Entity):
|
|||||||
def request_to_publish(self):
|
def request_to_publish(self):
|
||||||
self._ensure_valid_state()
|
self._ensure_valid_state()
|
||||||
|
|
||||||
return ClassifiedAd(
|
return replace(self, state=ClassifiedAdState.PendingReview)
|
||||||
id=self.id,
|
|
||||||
_ownerId=self._ownerId,
|
|
||||||
title=self.title,
|
|
||||||
text=self.text,
|
|
||||||
price=self.price,
|
|
||||||
state=ClassifiedAdState.PendingReview,
|
|
||||||
_events=self._events,
|
|
||||||
)
|
|
||||||
|
|
||||||
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
|
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
|
||||||
updated = ClassifiedAd(
|
updated = replace(self, title=title)
|
||||||
id=self.id,
|
|
||||||
_ownerId=self._ownerId,
|
|
||||||
title=title,
|
|
||||||
text=self.text,
|
|
||||||
price=self.price,
|
|
||||||
state=self.state,
|
|
||||||
_events=self._events,
|
|
||||||
)
|
|
||||||
updated._ensure_valid_state()
|
updated._ensure_valid_state()
|
||||||
return updated.raise_event(
|
return updated.raise_event(
|
||||||
ClassifiedAdTitleChanged(id=self.id.value, title=title.title)
|
ClassifiedAdTitleChanged(id=self.id.value, title=title.title)
|
||||||
|
|||||||
Reference in New Issue
Block a user