28 lines
666 B
Python
28 lines
666 B
Python
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),
|
|
)
|