Files
DataRush/services/backend/api/v1/user/schemas.py
T
Андрей Сумин d931cd0112 feat: leaderboard
2025-03-04 05:46:32 +03:00

40 lines
922 B
Python

from ninja import ModelSchema, Schema
from api.v1.achievement.schemas import UserAchievementSchema
from apps.achievement.models import UserAchievement
from apps.user.models import User
class TokenSchema(Schema):
token: str
class RegisterSchema(ModelSchema):
class Meta:
model = User
fields = ["email", "username", "password"]
class LoginSchema(ModelSchema):
class Meta:
model = User
fields = ["email", "password"]
class UserSchema(ModelSchema):
achievements: list[UserAchievementSchema] = None
@staticmethod
def resolve_achievements(self, context):
return UserAchievement.objects.filter(
user=context.get("request").auth
).order_by("-received_at")
class Meta:
model = User
fields = ["id", "avatar", "email", "username", "created_at"]
class StatSchema(Schema):
total_attempts: int
solved_tasks: int