33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
|
|
from django.contrib.auth.models import User
|
|
from django.db.models import QuerySet
|
|
|
|
from .models import GameModel
|
|
from profiles.serializers import ProfileSerializer
|
|
|
|
class GameSerializer(serializers.ModelSerializer):
|
|
|
|
players = serializers.SerializerMethodField()
|
|
winner = serializers.ReadOnlyField()
|
|
state = serializers.SerializerMethodField()
|
|
started = serializers.ReadOnlyField()
|
|
finished = serializers.ReadOnlyField()
|
|
start_timestamp = serializers.ReadOnlyField()
|
|
stop_timestamp = serializers.ReadOnlyField()
|
|
game_type = serializers.ReadOnlyField()
|
|
|
|
class Meta:
|
|
model = GameModel
|
|
fields = ["id", "winner", "state", "started", "finished", "players", "start_timestamp", "stop_timestamp", "game_type"]
|
|
|
|
def get_state(self, instance: GameModel):
|
|
if (instance.finished):
|
|
return "finished"
|
|
if (instance.started):
|
|
return "started"
|
|
return "waiting"
|
|
|
|
def get_players(self, instance: GameModel):
|
|
return ProfileSerializer(instance.get_players_profiles(), many=True).data
|