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

26 lines
531 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):
id: int
username: str
points: int
version: str | None
created_at: str
@staticmethod
def resolve_version(obj: Score) -> str | None:
return obj.version.name if obj.version_id else None
@staticmethod
def resolve_created_at(obj: Score) -> str:
return obj.created_at.isoformat()