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