"""Content value object.""" from dataclasses import dataclass from app.domain.value_objects.base import ValueObject @dataclass(frozen=True, slots=True) class Content(ValueObject[str]): """Blog post content value object.""" MIN_LENGTH: int = 10 MAX_LENGTH: int = 50000 def _validate(self) -> None: if not isinstance(self.value, str): raise ValueError("Content must be a string") if not self.value.strip(): raise ValueError("Content cannot be empty or whitespace") if len(self.value) < self.MIN_LENGTH: raise ValueError(f"Content must be at least {self.MIN_LENGTH} characters") if len(self.value) > self.MAX_LENGTH: raise ValueError(f"Content must be at most {self.MAX_LENGTH} characters")