39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
|
|
from api.models import Hero, Item
|
|
|
|
|
|
class HeroSerializer(serializers.ModelSerializer):
|
|
primary = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Hero
|
|
fields = ["id", "name", "primary"]
|
|
|
|
def get_primary(self, obj):
|
|
return obj.primary.lower()
|
|
|
|
|
|
class ItemSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Item
|
|
fields = ["id", "name"]
|
|
|
|
|
|
class RandomizeBuildRequestSerializer(serializers.Serializer):
|
|
includeSkills = serializers.BooleanField()
|
|
includeAspect = serializers.BooleanField()
|
|
itemsCount = serializers.IntegerField(min_value=1)
|
|
heroId = serializers.IntegerField(required=False, allow_null=True)
|
|
|
|
|
|
class RandomizeBuildResponseSerializer(serializers.Serializer):
|
|
hero = HeroSerializer()
|
|
items = ItemSerializer(many=True)
|
|
skillBuild = serializers.DictField(
|
|
child=serializers.CharField(),
|
|
required=False,
|
|
help_text="Map of level (1-25) to skill (q/w/e/r/left_talent/right_talent)"
|
|
)
|
|
aspect = serializers.CharField(required=False)
|