feat: use ClassifiedAdTitle value object for ClassifiedAd.title

This commit is contained in:
2026-07-26 11:39:25 -04:00
parent 3df59767ea
commit ed83e021a0
6 changed files with 49 additions and 11 deletions

View File

@@ -1,5 +1,6 @@
from .classified_ad import ClassifiedAd as ClassifiedAd
from .classified_ad_id import ClassifiedAdId as ClassifiedAdId
from .classified_ad_title import ClassifiedAdTitle as ClassifiedAdTitle
from .money import Money as Money
from .price import Price as Price
from .user_id import UserId as UserId

View File

@@ -2,6 +2,7 @@ from dataclasses import dataclass, field
from decimal import Decimal
from domain.marketplace.classified_ad_id import ClassifiedAdId
from domain.marketplace.classified_ad_title import ClassifiedAdTitle
from domain.marketplace.price import Price
from domain.marketplace.user_id import UserId
@@ -10,6 +11,6 @@ from domain.marketplace.user_id import UserId
class ClassifiedAd:
id: ClassifiedAdId
_ownerId: UserId
title: str
title: ClassifiedAdTitle
text: str
price: Price = field(default_factory=lambda: Price(amount=Decimal("0.00")))

View File

@@ -0,0 +1,10 @@
from dataclasses import dataclass
@dataclass(frozen=True)
class ClassifiedAdTitle:
title: str
def __post_init__(self):
if len(self.title) > 100:
raise ValueError(f"Title cannot be longer than 100 characters: {self.title}")