from dataclasses import dataclass, field from uuid import UUID, uuid4 @dataclass class Asset: id: UUID = field(default_factory=uuid4) name: str = "" value: float = 0.0 growth_rate: float = 0.0 def to_dict(self) -> dict: return { "id": str(self.id), "name": self.name, "value": self.value, "growth_rate": self.growth_rate, } @classmethod def from_dict(cls, data: dict) -> "Asset": return cls( id=UUID(data["id"]), name=data["name"], value=data.get("value", 0.0), growth_rate=data.get("growth_rate", 0.0), )