feat: add generic Value[T] base class for value objects

- Create Value[T] (frozen dataclass + ABC + Generic) in domain/framework/
- Migrate ClassifiedAdTitle and ClassifiedAdText to inherit Value[str]
- Standardize all value access via .value instead of type-specific fields
This commit is contained in:
2026-07-29 11:13:17 -04:00
parent 05229910cd
commit d345e522bd
9 changed files with 150 additions and 102 deletions

View File

@@ -4,10 +4,13 @@ from domain.marketplace.classified_ad_title import ClassifiedAdTitle
def test_classified_ad_title_creation():
title = ClassifiedAdTitle(title="Test Ad")
title = ClassifiedAdTitle(value="Test Ad")
assert title.value == "Test Ad"
assert title.title == "Test Ad"
def test_classified_ad_title_can_not_be_longer_then_100_chars():
with pytest.raises(ValueError):
ClassifiedAdTitle(title="efbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzza")
ClassifiedAdTitle(
value="efbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzzaefbqzzqmsjdlhkovmnmyykrjvlftrzza"
)