selecta-highscore/highscore/scores/api/schemas.py

26 lines
542 B
Python

from ninja import Schema
from app.api_base import BaseSchema
from scores.models import Score
class ScoreIn(Schema, BaseSchema):
username: str
points: int
class ScoreOut(Schema, BaseSchema):
username: str
points: int
version: str | None
created_at: str
rank: int
@staticmethod
def resolve_version(obj: Score) -> str | None:
return obj.version.name if obj.version is not None else None
@staticmethod
def resolve_created_at(obj: Score) -> str:
return obj.created_at.isoformat()