| 6089 | |
| 6090 | |
| 6091 | class VersionGroupDetailSerializer(serializers.ModelSerializer): |
| 6092 | generation = GenerationSummarySerializer() |
| 6093 | versions = VersionSummarySerializer(many=True, read_only=True, source="version") |
| 6094 | regions = serializers.SerializerMethodField("get_version_group_regions") |
| 6095 | move_learn_methods = serializers.SerializerMethodField("get_learn_methods") |
| 6096 | pokedexes = serializers.SerializerMethodField("get_version_groups_pokedexes") |
| 6097 | |
| 6098 | class Meta: |
| 6099 | model = VersionGroup |
| 6100 | fields = ( |
| 6101 | "id", |
| 6102 | "name", |
| 6103 | "order", |
| 6104 | "generation", |
| 6105 | "move_learn_methods", |
| 6106 | "pokedexes", |
| 6107 | "regions", |
| 6108 | "versions", |
| 6109 | ) |
| 6110 | |
| 6111 | @extend_schema_field( |
| 6112 | field={ |
| 6113 | "type": "array", |
| 6114 | "items": { |
| 6115 | "type": "object", |
| 6116 | "required": ["name", "url"], |
| 6117 | "properties": { |
| 6118 | "name": {"type": "string", "examples": ["kanto"]}, |
| 6119 | "url": { |
| 6120 | "type": "string", |
| 6121 | "format": "uri", |
| 6122 | "examples": ["https://pokeapi.co/api/v2/region/1/"], |
| 6123 | }, |
| 6124 | }, |
| 6125 | }, |
| 6126 | } |
| 6127 | ) |
| 6128 | def get_version_group_regions(self, obj): |
| 6129 | vg_regions = VersionGroupRegion.objects.filter(version_group=obj) |
| 6130 | data = VersionGroupRegionSerializer( |
| 6131 | vg_regions, many=True, context=self.context |
| 6132 | ).data |
| 6133 | regions = [] |
| 6134 | |
| 6135 | for region in data: |
| 6136 | regions.append(region["region"]) |
| 6137 | |
| 6138 | return regions |
| 6139 | |
| 6140 | # "name": "level-up", |
| 6141 | # "url": "https://pokeapi.co/api/v2/move-learn-method/1/" |
| 6142 | @extend_schema_field( |
| 6143 | field={ |
| 6144 | "type": "array", |
| 6145 | "items": { |
| 6146 | "type": "object", |
| 6147 | "required": ["name", "url"], |
| 6148 | "properties": { |
nothing calls this directly
no test coverage detected