round 2
This commit is contained in:
@@ -1,33 +1,29 @@
|
||||
from dataclasses import dataclass
|
||||
import uuid
|
||||
from models.base import BaseModel
|
||||
|
||||
@dataclass
|
||||
class Reward:
|
||||
class Reward(BaseModel):
|
||||
name: str
|
||||
description: str
|
||||
cost: int
|
||||
image_id: str | None = None
|
||||
id: str | None = None
|
||||
|
||||
def __post_init__(self):
|
||||
if self.id is None:
|
||||
self.id = str(uuid.uuid4())
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
return cls(
|
||||
id=d.get('id'),
|
||||
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):
|
||||
return {
|
||||
'id': self.id,
|
||||
base = super().to_dict()
|
||||
base.update({
|
||||
'name': self.name,
|
||||
'description': self.description,
|
||||
'cost': self.cost,
|
||||
'image_id': self.image_id
|
||||
}
|
||||
})
|
||||
return base
|
||||
|
||||
Reference in New Issue
Block a user