feat: use ClassifiedAdTitle value object for ClassifiedAd.title
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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")))
|
||||
|
||||
10
domain/marketplace/classified_ad_title.py
Normal file
10
domain/marketplace/classified_ad_title.py
Normal 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}")
|
||||
Reference in New Issue
Block a user