from dataclasses import dataclass from models.base import BaseModel @dataclass class Reward(BaseModel): name: str description: str cost: int image_id: str | None = None @classmethod def from_dict(cls, d: dict): obj = cls( name=d.get('name'), description=d.get('description'), cost=d.get('cost', 0), image_id=d.get('image_id') ) return cls._apply_base_fields(obj, d) def to_dict(self): base = super().to_dict() base.update({ 'name': self.name, 'description': self.description, 'cost': self.cost, 'image_id': self.image_id }) return base