From 2cf514995de67c856581f2d56ab69b1545795348 Mon Sep 17 00:00:00 2001 From: Paul de Raaij Date: Wed, 29 Jul 2026 02:12:25 -0400 Subject: [PATCH] refactor: use dataclasses.replace instead of manual field construction --- domain/marketplace/classified_ad.py | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/domain/marketplace/classified_ad.py b/domain/marketplace/classified_ad.py index cc6ff5b..e84ff8f 100644 --- a/domain/marketplace/classified_ad.py +++ b/domain/marketplace/classified_ad.py @@ -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)