refactor: use dataclasses.replace instead of manual field construction

This commit is contained in:
2026-07-29 02:12:25 -04:00
parent de0707bb4f
commit 2cf514995d

View File

@@ -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)