docs(openapi): add tags (groups)

This commit is contained in:
indyandie 2024-02-26 02:10:24 -06:00
parent 9085223ae4
commit 5e1c02b07a
No known key found for this signature in database
GPG key ID: FDB83C1AED3933E1
2 changed files with 289 additions and 142 deletions

View file

@ -25,7 +25,7 @@ paths:
schema:
type: integer
tags:
- ability
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -52,7 +52,7 @@ paths:
description: A unique integer value identifying this ability.
required: true
tags:
- ability
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -85,7 +85,7 @@ paths:
schema:
type: integer
tags:
- berry
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -116,7 +116,7 @@ paths:
schema:
type: integer
tags:
- berry-firmness
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -141,7 +141,7 @@ paths:
description: A unique integer value identifying this berry firmness.
required: true
tags:
- berry-firmness
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -173,7 +173,7 @@ paths:
schema:
type: integer
tags:
- berry-flavor
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -199,7 +199,7 @@ paths:
description: A unique integer value identifying this berry flavor.
required: true
tags:
- berry-flavor
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -226,7 +226,7 @@ paths:
description: A unique integer value identifying this berry.
required: true
tags:
- berry
- berries
security:
- cookieAuth: []
- basicAuth: []
@ -259,7 +259,7 @@ paths:
schema:
type: integer
tags:
- characteristic
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -286,7 +286,7 @@ paths:
description: A unique integer value identifying this characteristic.
required: true
tags:
- characteristic
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -316,7 +316,7 @@ paths:
schema:
type: integer
tags:
- contest-effect
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -340,7 +340,7 @@ paths:
description: A unique integer value identifying this contest effect.
required: true
tags:
- contest-effect
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -372,7 +372,7 @@ paths:
schema:
type: integer
tags:
- contest-type
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -398,7 +398,7 @@ paths:
description: A unique integer value identifying this contest type.
required: true
tags:
- contest-type
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -431,7 +431,7 @@ paths:
schema:
type: integer
tags:
- egg-group
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -458,7 +458,7 @@ paths:
description: A unique integer value identifying this egg group.
required: true
tags:
- egg-group
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -489,7 +489,7 @@ paths:
schema:
type: integer
tags:
- encounter-condition
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -520,7 +520,7 @@ paths:
schema:
type: integer
tags:
- encounter-condition-value
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -545,7 +545,7 @@ paths:
description: A unique integer value identifying this encounter condition value.
required: true
tags:
- encounter-condition-value
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -570,7 +570,7 @@ paths:
description: A unique integer value identifying this encounter condition.
required: true
tags:
- encounter-condition
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -601,7 +601,7 @@ paths:
schema:
type: integer
tags:
- encounter-method
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -626,7 +626,7 @@ paths:
description: A unique integer value identifying this encounter method.
required: true
tags:
- encounter-method
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -658,7 +658,7 @@ paths:
schema:
type: integer
tags:
- evolution-chain
- evolution
security:
- cookieAuth: []
- basicAuth: []
@ -684,7 +684,7 @@ paths:
description: A unique integer value identifying this evolution chain.
required: true
tags:
- evolution-chain
- evolution
security:
- cookieAuth: []
- basicAuth: []
@ -716,7 +716,7 @@ paths:
schema:
type: integer
tags:
- evolution-trigger
- evolution
security:
- cookieAuth: []
- basicAuth: []
@ -742,7 +742,7 @@ paths:
description: A unique integer value identifying this evolution trigger.
required: true
tags:
- evolution-trigger
- evolution
security:
- cookieAuth: []
- basicAuth: []
@ -775,7 +775,7 @@ paths:
schema:
type: integer
tags:
- gender
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -802,7 +802,7 @@ paths:
description: A unique integer value identifying this gender.
required: true
tags:
- gender
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -835,7 +835,7 @@ paths:
schema:
type: integer
tags:
- generation
- games
security:
- cookieAuth: []
- basicAuth: []
@ -862,7 +862,7 @@ paths:
description: A unique integer value identifying this generation.
required: true
tags:
- generation
- games
security:
- cookieAuth: []
- basicAuth: []
@ -894,7 +894,7 @@ paths:
schema:
type: integer
tags:
- growth-rate
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -920,7 +920,7 @@ paths:
description: A unique integer value identifying this growth rate.
required: true
tags:
- growth-rate
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -952,7 +952,7 @@ paths:
schema:
type: integer
tags:
- item
- items
security:
- cookieAuth: []
- basicAuth: []
@ -983,7 +983,7 @@ paths:
schema:
type: integer
tags:
- item-attribute
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1008,7 +1008,7 @@ paths:
description: A unique integer value identifying this item attribute.
required: true
tags:
- item-attribute
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1039,7 +1039,7 @@ paths:
schema:
type: integer
tags:
- item-category
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1064,7 +1064,7 @@ paths:
description: A unique integer value identifying this item category.
required: true
tags:
- item-category
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1095,7 +1095,7 @@ paths:
schema:
type: integer
tags:
- item-fling-effect
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1120,7 +1120,7 @@ paths:
description: A unique integer value identifying this item fling effect.
required: true
tags:
- item-fling-effect
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1150,7 +1150,7 @@ paths:
schema:
type: integer
tags:
- item-pocket
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1174,7 +1174,7 @@ paths:
description: A unique integer value identifying this item pocket.
required: true
tags:
- item-pocket
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1200,7 +1200,7 @@ paths:
description: A unique integer value identifying this item.
required: true
tags:
- item
- items
security:
- cookieAuth: []
- basicAuth: []
@ -1230,7 +1230,7 @@ paths:
schema:
type: integer
tags:
- language
- utility
security:
- cookieAuth: []
- basicAuth: []
@ -1254,7 +1254,7 @@ paths:
description: A unique integer value identifying this language.
required: true
tags:
- language
- utility
security:
- cookieAuth: []
- basicAuth: []
@ -1316,7 +1316,7 @@ paths:
schema:
type: integer
tags:
- location-area
- location
security:
- cookieAuth: []
- basicAuth: []
@ -1341,7 +1341,7 @@ paths:
description: A unique integer value identifying this location area.
required: true
tags:
- location-area
- location
security:
- cookieAuth: []
- basicAuth: []
@ -1398,7 +1398,7 @@ paths:
schema:
type: integer
tags:
- machine
- machines
security:
- cookieAuth: []
- basicAuth: []
@ -1424,7 +1424,7 @@ paths:
description: A unique integer value identifying this machine.
required: true
tags:
- machine
- machines
security:
- cookieAuth: []
- basicAuth: []
@ -1457,7 +1457,7 @@ paths:
schema:
type: integer
tags:
- move
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1489,7 +1489,7 @@ paths:
schema:
type: integer
tags:
- move-ailment
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1515,7 +1515,7 @@ paths:
description: A unique integer value identifying this move meta ailment.
required: true
tags:
- move-ailment
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1546,7 +1546,7 @@ paths:
schema:
type: integer
tags:
- move-battle-style
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1571,7 +1571,7 @@ paths:
description: A unique integer value identifying this move battle style.
required: true
tags:
- move-battle-style
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1601,7 +1601,7 @@ paths:
schema:
type: integer
tags:
- move-category
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1625,7 +1625,7 @@ paths:
description: A unique integer value identifying this move meta category.
required: true
tags:
- move-category
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1655,7 +1655,7 @@ paths:
schema:
type: integer
tags:
- move-damage-class
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -1679,7 +1679,7 @@ paths:
description: A unique integer value identifying this move damage class.
required: true
tags:
- move-damage-class
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -1709,7 +1709,7 @@ paths:
schema:
type: integer
tags:
- move-learn-method
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1733,7 +1733,7 @@ paths:
description: A unique integer value identifying this move learn method.
required: true
tags:
- move-learn-method
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1764,7 +1764,7 @@ paths:
schema:
type: integer
tags:
- move-target
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1789,7 +1789,7 @@ paths:
description: A unique integer value identifying this move target.
required: true
tags:
- move-target
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1816,7 +1816,7 @@ paths:
description: A unique integer value identifying this move.
required: true
tags:
- move
- moves
security:
- cookieAuth: []
- basicAuth: []
@ -1847,7 +1847,7 @@ paths:
schema:
type: integer
tags:
- nature
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -1872,7 +1872,7 @@ paths:
description: A unique integer value identifying this nature.
required: true
tags:
- nature
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -1903,7 +1903,7 @@ paths:
schema:
type: integer
tags:
- pal-park-area
- location
security:
- cookieAuth: []
- basicAuth: []
@ -1928,7 +1928,7 @@ paths:
description: A unique integer value identifying this pal park area.
required: true
tags:
- pal-park-area
- location
security:
- cookieAuth: []
- basicAuth: []
@ -1961,7 +1961,7 @@ paths:
schema:
type: integer
tags:
- pokeathlon-stat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -1988,7 +1988,7 @@ paths:
description: A unique integer value identifying this pokeathlon stat.
required: true
tags:
- pokeathlon-stat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2022,7 +2022,7 @@ paths:
schema:
type: integer
tags:
- pokedex
- games
security:
- cookieAuth: []
- basicAuth: []
@ -2050,7 +2050,7 @@ paths:
description: A unique integer value identifying this pokedex.
required: true
tags:
- pokedex
- games
security:
- cookieAuth: []
- basicAuth: []
@ -2118,7 +2118,7 @@ paths:
schema:
type: integer
tags:
- pokemon-color
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2145,7 +2145,7 @@ paths:
description: A unique integer value identifying this pokemon color.
required: true
tags:
- pokemon-color
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2178,7 +2178,7 @@ paths:
schema:
type: integer
tags:
- pokemon-form
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2205,7 +2205,7 @@ paths:
description: A unique integer value identifying this pokemon form.
required: true
tags:
- pokemon-form
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2236,7 +2236,7 @@ paths:
schema:
type: integer
tags:
- pokemon-habitat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2261,7 +2261,7 @@ paths:
description: A unique integer value identifying this pokemon habitat.
required: true
tags:
- pokemon-habitat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2291,7 +2291,7 @@ paths:
schema:
type: integer
tags:
- pokemon-shape
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2315,7 +2315,7 @@ paths:
description: A unique integer value identifying this pokemon shape.
required: true
tags:
- pokemon-shape
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2348,7 +2348,7 @@ paths:
schema:
type: integer
tags:
- pokemon-species
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2375,7 +2375,7 @@ paths:
description: A unique integer value identifying this pokemon species.
required: true
tags:
- pokemon-species
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2428,7 +2428,7 @@ paths:
pattern: ^\d+$
required: true
tags:
- pokemon
- encounters
security:
- cookieAuth: []
- basicAuth: []
@ -2456,7 +2456,7 @@ paths:
schema:
type: integer
tags:
- region
- location
security:
- cookieAuth: []
- basicAuth: []
@ -2482,7 +2482,7 @@ paths:
description: A unique integer value identifying this region.
required: true
tags:
- region
- location
security:
- cookieAuth: []
- basicAuth: []
@ -2514,7 +2514,7 @@ paths:
schema:
type: integer
tags:
- stat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2540,7 +2540,7 @@ paths:
description: A unique integer value identifying this stat.
required: true
tags:
- stat
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2571,7 +2571,7 @@ paths:
schema:
type: integer
tags:
- super-contest-effect
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -2596,7 +2596,7 @@ paths:
description: A unique integer value identifying this super contest effect.
required: true
tags:
- super-contest-effect
- contests
security:
- cookieAuth: []
- basicAuth: []
@ -2629,7 +2629,7 @@ paths:
schema:
type: integer
tags:
- type
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2656,7 +2656,7 @@ paths:
description: A unique integer value identifying this type.
required: true
tags:
- type
- pokemon
security:
- cookieAuth: []
- basicAuth: []
@ -2686,7 +2686,7 @@ paths:
schema:
type: integer
tags:
- version
- games
security:
- cookieAuth: []
- basicAuth: []
@ -2716,7 +2716,7 @@ paths:
schema:
type: integer
tags:
- version-group
- games
security:
- cookieAuth: []
- basicAuth: []
@ -2740,7 +2740,7 @@ paths:
description: A unique integer value identifying this version group.
required: true
tags:
- version-group
- games
security:
- cookieAuth: []
- basicAuth: []
@ -2764,7 +2764,7 @@ paths:
description: A unique integer value identifying this version.
required: true
tags:
- version
- games
security:
- cookieAuth: []
- basicAuth: []

View file

@ -71,343 +71,490 @@ class PokeapiCommonViewset(
##########
@extend_schema(description='Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible abilities but can have only one ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability) for greater detail.')
@extend_schema(
description='Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible abilities but can have only one ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability) for greater detail.',
tags=[ 'pokemon' ]
)
class AbilityResource(PokeapiCommonViewset):
queryset = Ability.objects.all()
serializer_class = AbilityDetailSerializer
list_serializer_class = AbilitySummarySerializer
@extend_schema(description='Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage negation when eaten by Pokémon. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater detail.')
@extend_schema(
description='Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage negation when eaten by Pokémon. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater detail.',
tags=[ 'berries' ]
)
class BerryResource(PokeapiCommonViewset):
queryset = Berry.objects.all()
serializer_class = BerryDetailSerializer
list_serializer_class = BerrySummarySerializer
@extend_schema(description='Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness) for greater detail.')
@extend_schema(
description='Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness) for greater detail.',
tags=[ 'berries' ]
)
class BerryFirmnessResource(PokeapiCommonViewset):
queryset = BerryFirmness.objects.all()
serializer_class = BerryFirmnessDetailSerializer
list_serializer_class = BerryFirmnessSummarySerializer
@extend_schema(description='Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their **nature**. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.')
@extend_schema(
description='Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their **nature**. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.',
tags=[ 'berries' ]
)
class BerryFlavorResource(PokeapiCommonViewset):
queryset = BerryFlavor.objects.all()
serializer_class = BerryFlavorDetailSerializer
list_serializer_class = BerryFlavorSummarySerializer
@extend_schema(description='Characteristics indicate which stat contains a Pokémon\'s highest IV. A Pokémon\'s Characteristic is determined by the remainder of its highest IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic) for greater detail.')
@extend_schema(
description='Characteristics indicate which stat contains a Pokémon\'s highest IV. A Pokémon\'s Characteristic is determined by the remainder of its highest IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic) for greater detail.',
tags=[ 'pokemon' ]
)
class CharacteristicResource(PokeapiCommonViewset):
queryset = Characteristic.objects.all()
serializer_class = CharacteristicDetailSerializer
list_serializer_class = CharacteristicSummarySerializer
@extend_schema(description='Contest effects refer to the effects of moves when used in contests.')
@extend_schema(
description='Contest effects refer to the effects of moves when used in contests.',
tags=[ 'contests' ]
)
class ContestEffectResource(PokeapiCommonViewset):
queryset = ContestEffect.objects.all()
serializer_class = ContestEffectDetailSerializer
list_serializer_class = ContestEffectSummarySerializer
@extend_schema(description='Contest types are categories judges used to weigh a Pokémon\'s condition in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition) for greater detail.')
@extend_schema(
description='Contest types are categories judges used to weigh a Pokémon\'s condition in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition) for greater detail.',
tags=[ 'contests' ]
)
class ContestTypeResource(PokeapiCommonViewset):
queryset = ContestType.objects.all()
serializer_class = ContestTypeDetailSerializer
list_serializer_class = ContestTypeSummarySerializer
@extend_schema(description='Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one or two Egg Groups. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater detail.')
@extend_schema(
description='Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one or two Egg Groups. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater detail.',
tags=[ 'pokemon' ]
)
class EggGroupResource(PokeapiCommonViewset):
queryset = EggGroup.objects.all()
serializer_class = EggGroupDetailSerializer
list_serializer_class = EggGroupSummarySerializer
@extend_schema(description='Conditions which affect what pokemon might appear in the wild, e.g., day or night.')
@extend_schema(
description='Conditions which affect what pokemon might appear in the wild, e.g., day or night.',
tags=[ 'encounters' ]
)
class EncounterConditionResource(PokeapiCommonViewset):
queryset = EncounterCondition.objects.all()
serializer_class = EncounterConditionDetailSerializer
list_serializer_class = EncounterConditionSummarySerializer
@extend_schema(description='Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be either day or night.')
@extend_schema(
description='Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be either day or night.',
tags=[ 'encounters' ]
)
class EncounterConditionValueResource(PokeapiCommonViewset):
queryset = EncounterConditionValue.objects.all()
serializer_class = EncounterConditionValueDetailSerializer
list_serializer_class = EncounterConditionValueSummarySerializer
@extend_schema(description='Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out Bulbapedia for greater detail.')
@extend_schema(
description='Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out Bulbapedia for greater detail.',
tags=[ 'encounters' ]
)
class EncounterMethodResource(PokeapiCommonViewset):
queryset = EncounterMethod.objects.all()
serializer_class = EncounterMethodDetailSerializer
list_serializer_class = EncounterMethodSummarySerializer
@extend_schema(description='Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy.')
@extend_schema(
description='Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy.',
tags=[ 'evolution' ]
)
class EvolutionChainResource(PokeapiCommonViewset):
queryset = EvolutionChain.objects.all()
serializer_class = EvolutionChainDetailSerializer
list_serializer_class = EvolutionChainSummarySerializer
@extend_schema(description='Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution) for greater detail.')
@extend_schema(
description='Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution) for greater detail.',
tags=[ 'evolution' ]
)
class EvolutionTriggerResource(PokeapiCommonViewset):
queryset = EvolutionTrigger.objects.all()
serializer_class = EvolutionTriggerDetailSerializer
list_serializer_class = EvolutionTriggerSummarySerializer
@extend_schema(description='A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each generation, a new set of Pokémon, Moves, Abilities and Types that did not exist in the previous generation are released.')
@extend_schema(
description='A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each generation, a new set of Pokémon, Moves, Abilities and Types that did not exist in the previous generation are released.',
tags=[ 'games' ]
)
class GenerationResource(PokeapiCommonViewset):
queryset = Generation.objects.all()
serializer_class = GenerationDetailSerializer
list_serializer_class = GenerationSummarySerializer
@extend_schema(description='Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual differences or even different evolutionary lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender) for greater detail.')
@extend_schema(
description='Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual differences or even different evolutionary lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender) for greater detail.',
tags=[ 'pokemon' ]
)
class GenderResource(PokeapiCommonViewset):
queryset = Gender.objects.all()
serializer_class = GenderDetailSerializer
list_serializer_class = GenderSummarySerializer
@extend_schema(description='Growth rates are the speed with which Pokémon gain levels through experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience) for greater detail.')
@extend_schema(
description='Growth rates are the speed with which Pokémon gain levels through experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience) for greater detail.',
tags=[ 'pokemon' ]
)
class GrowthRateResource(PokeapiCommonViewset):
queryset = GrowthRate.objects.all()
serializer_class = GrowthRateDetailSerializer
list_serializer_class = GrowthRateSummarySerializer
@extend_schema(description='An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.')
@extend_schema(
description='An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.',
tags=[ 'items' ]
)
class ItemResource(PokeapiCommonViewset):
queryset = Item.objects.all()
serializer_class = ItemDetailSerializer
list_serializer_class = ItemSummarySerializer
@extend_schema(description='Item categories determine where items will be placed in the players bag.')
@extend_schema(
description='Item categories determine where items will be placed in the players bag.',
tags=[ 'items' ]
)
class ItemCategoryResource(PokeapiCommonViewset):
queryset = ItemCategory.objects.all()
serializer_class = ItemCategoryDetailSerializer
list_serializer_class = ItemCategorySummarySerializer
@extend_schema(description='Item attributes define particular aspects of items, e.g."usable in battle" or "consumable".')
@extend_schema(
description='Item attributes define particular aspects of items, e.g."usable in battle" or "consumable".',
tags=[ 'items' ]
)
class ItemAttributeResource(PokeapiCommonViewset):
queryset = ItemAttribute.objects.all()
serializer_class = ItemAttributeDetailSerializer
list_serializer_class = ItemAttributeSummarySerializer
@extend_schema(description='The various effects of the move"Fling" when used with different items.')
@extend_schema(
description='The various effects of the move"Fling" when used with different items.',
tags=[ 'items' ]
)
class ItemFlingEffectResource(PokeapiCommonViewset):
queryset = ItemFlingEffect.objects.all()
serializer_class = ItemFlingEffectDetailSerializer
list_serializer_class = ItemFlingEffectSummarySerializer
@extend_schema(description='Pockets within the players bag used for storing items by category.')
@extend_schema(
description='Pockets within the players bag used for storing items by category.',
tags=[ 'items' ]
)
class ItemPocketResource(PokeapiCommonViewset):
queryset = ItemPocket.objects.all()
serializer_class = ItemPocketDetailSerializer
list_serializer_class = ItemPocketSummarySerializer
@extend_schema(description='Languages for translations of API resource information.')
@extend_schema(
description='Languages for translations of API resource information.',
tags=[ 'utility' ]
)
class LanguageResource(PokeapiCommonViewset):
queryset = Language.objects.all()
serializer_class = LanguageDetailSerializer
list_serializer_class = LanguageSummarySerializer
@extend_schema(description='Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.')
@extend_schema(
description='Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.',
tags=[ 'location' ]
)
class LocationResource(PokeapiCommonViewset):
queryset = Location.objects.all()
serializer_class = LocationDetailSerializer
list_serializer_class = LocationSummarySerializer
@extend_schema(description='Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible Pokémon encounters.')
@extend_schema(
description='Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible Pokémon encounters.',
tags=[ 'location' ]
)
class LocationAreaResource(ListOrDetailSerialRelation, viewsets.ReadOnlyModelViewSet):
queryset = LocationArea.objects.all()
serializer_class = LocationAreaDetailSerializer
list_serializer_class = LocationAreaSummarySerializer
@extend_schema(description='Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or HM corresponds to a single Machine.')
@extend_schema(
description='Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or HM corresponds to a single Machine.',
tags=[ 'machines' ]
)
class MachineResource(PokeapiCommonViewset):
queryset = Machine.objects.all()
serializer_class = MachineDetailSerializer
list_serializer_class = MachineSummarySerializer
@extend_schema(description='Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas.')
@extend_schema(
description='Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas.',
tags=[ 'moves' ]
)
class MoveResource(PokeapiCommonViewset):
queryset = Move.objects.all()
serializer_class = MoveDetailSerializer
list_serializer_class = MoveSummarySerializer
@extend_schema(description='Damage classes moves can have, e.g. physical, special, or non-damaging.')
@extend_schema(
description='Damage classes moves can have, e.g. physical, special, or non-damaging.',
tags=[ 'pokemon' ]
)
class MoveDamageClassResource(PokeapiCommonViewset):
queryset = MoveDamageClass.objects.all()
serializer_class = MoveDamageClassDetailSerializer
list_serializer_class = MoveDamageClassSummarySerializer
@extend_schema(description='Move Ailments are status conditions caused by moves used during battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition) for greater detail.')
@extend_schema(
description='Move Ailments are status conditions caused by moves used during battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition) for greater detail.',
tags=[ 'moves' ]
)
class MoveMetaAilmentResource(PokeapiCommonViewset):
queryset = MoveMetaAilment.objects.all()
serializer_class = MoveMetaAilmentDetailSerializer
list_serializer_class = MoveMetaAilmentSummarySerializer
@extend_schema(description='Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III)) for greater detail.')
@extend_schema(
description='Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III)) for greater detail.',
tags=[ 'moves' ]
)
class MoveBattleStyleResource(PokeapiCommonViewset):
queryset = MoveBattleStyle.objects.all()
serializer_class = MoveBattleStyleDetailSerializer
list_serializer_class = MoveBattleStyleSummarySerializer
@extend_schema(description='Very general categories that loosely group move effects.')
@extend_schema(
description='Very general categories that loosely group move effects.',
tags=[ 'moves' ]
)
class MoveMetaCategoryResource(PokeapiCommonViewset):
queryset = MoveMetaCategory.objects.all()
serializer_class = MoveMetaCategoryDetailSerializer
list_serializer_class = MoveMetaCategorySummarySerializer
@extend_schema(description='Methods by which Pokémon can learn moves.')
@extend_schema(
description='Methods by which Pokémon can learn moves.',
tags=[ 'moves' ]
)
class MoveLearnMethodResource(PokeapiCommonViewset):
queryset = MoveLearnMethod.objects.all()
serializer_class = MoveLearnMethodDetailSerializer
list_serializer_class = MoveLearnMethodSummarySerializer
@extend_schema(description='Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.')
@extend_schema(
description='Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.',
tags=[ 'moves' ]
)
class MoveTargetResource(PokeapiCommonViewset):
queryset = MoveTarget.objects.all()
serializer_class = MoveTargetDetailSerializer
list_serializer_class = MoveTargetSummarySerializer
@extend_schema(description='Natures influence how a Pokémon\'s stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature) for greater detail.')
@extend_schema(
description='Natures influence how a Pokémon\'s stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature) for greater detail.',
tags=[ 'pokemon' ]
)
class NatureResource(PokeapiCommonViewset):
queryset = Nature.objects.all()
serializer_class = NatureDetailSerializer
list_serializer_class = NatureSummarySerializer
@extend_schema(description='Areas used for grouping Pokémon encounters in Pal Park. They\'re like habitats that are specific to Pal Park.')
@extend_schema(
description='Areas used for grouping Pokémon encounters in Pal Park. They\'re like habitats that are specific to Pal Park.',
tags=[ 'location' ]
)
class PalParkAreaResource(PokeapiCommonViewset):
queryset = PalParkArea.objects.all()
serializer_class = PalParkAreaDetailSerializer
list_serializer_class = PalParkAreaSummarySerializer
@extend_schema(description='Pokeathlon Stats are different attributes of a Pokémon\'s performance in Pokéathlons. In Pokéathlons, competitions happen on different courses; one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon) for greater detail.')
@extend_schema(
description='Pokeathlon Stats are different attributes of a Pokémon\'s performance in Pokéathlons. In Pokéathlons, competitions happen on different courses; one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon) for greater detail.',
tags=[ 'pokemon' ]
)
class PokeathlonStatResource(PokeapiCommonViewset):
queryset = PokeathlonStat.objects.all()
serializer_class = PokeathlonStatDetailSerializer
list_serializer_class = PokeathlonStatSummarySerializer
@extend_schema(description='A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information of the various Pokémon in a given region with the exception of the national dex and some smaller dexes related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex) for greater detail.')
@extend_schema(
description='A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information of the various Pokémon in a given region with the exception of the national dex and some smaller dexes related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex) for greater detail.',
tags=[ 'games' ]
)
class PokedexResource(PokeapiCommonViewset):
queryset = Pokedex.objects.all()
serializer_class = PokedexDetailSerializer
list_serializer_class = PokedexSummarySerializer
@extend_schema(description='Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent or covering each Pokémon\'s body. No orange category exists; Pokémon that are primarily orange are listed as red or brown.')
@extend_schema(
description='Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent or covering each Pokémon\'s body. No orange category exists; Pokémon that are primarily orange are listed as red or brown.',
tags=[ 'pokemon' ]
)
class PokemonColorResource(PokeapiCommonViewset):
queryset = PokemonColor.objects.all()
serializer_class = PokemonColorDetailSerializer
list_serializer_class = PokemonColorSummarySerializer
@extend_schema(description='Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For variations within a Pokémon species, which do differ in more than just visuals, the \'Pokémon\' entity is used to represent such a variety.')
@extend_schema(
description='Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For variations within a Pokémon species, which do differ in more than just visuals, the \'Pokémon\' entity is used to represent such a variety.',
tags=[ 'pokemon' ]
)
class PokemonFormResource(PokeapiCommonViewset):
queryset = PokemonForm.objects.all()
serializer_class = PokemonFormDetailSerializer
list_serializer_class = PokemonFormSummarySerializer
@extend_schema(description='Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or legendary Pokémon.')
@extend_schema(
description='Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or legendary Pokémon.',
tags=[ 'pokemon' ]
)
class PokemonHabitatResource(PokeapiCommonViewset):
queryset = PokemonHabitat.objects.all()
serializer_class = PokemonHabitatDetailSerializer
list_serializer_class = PokemonHabitatSummarySerializer
@extend_schema(description='Shapes used for sorting Pokémon in a Pokédex.')
@extend_schema(
description='Shapes used for sorting Pokémon in a Pokédex.',
tags=[ 'pokemon' ]
)
class PokemonShapeResource(PokeapiCommonViewset):
queryset = PokemonShape.objects.all()
serializer_class = PokemonShapeDetailSerializer
list_serializer_class = PokemonShapeSummarySerializer
@extend_schema(description='Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and trained by battling with other Pokémon. Each Pokémon belongs to a specific species but may take on a variant which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species)) for greater detail.')
@extend_schema(
description='Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and trained by battling with other Pokémon. Each Pokémon belongs to a specific species but may take on a variant which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species)) for greater detail.',
tags=[ 'pokemon' ]
)
class PokemonResource(PokeapiCommonViewset):
queryset = Pokemon.objects.all()
serializer_class = PokemonDetailSerializer
list_serializer_class = PokemonSummarySerializer
@extend_schema(description='A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all varieties of Pokémon within the species. A good example is Wormadam; Wormadam is the species which can be found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.')
@extend_schema(
description='A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all varieties of Pokémon within the species. A good example is Wormadam; Wormadam is the species which can be found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.',
tags=[ 'pokemon' ]
)
class PokemonSpeciesResource(PokeapiCommonViewset):
queryset = PokemonSpecies.objects.all().order_by("id")
serializer_class = PokemonSpeciesDetailSerializer
list_serializer_class = PokemonSpeciesSummarySerializer
@extend_schema(description='A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species of Pokémon that can be encountered within them.')
@extend_schema(
description='A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species of Pokémon that can be encountered within them.',
tags=[ 'location' ]
)
class RegionResource(PokeapiCommonViewset):
queryset = Region.objects.all()
serializer_class = RegionDetailSerializer
list_serializer_class = RegionSummarySerializer
@extend_schema(description='Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels and can be altered momentarily by effects in battles.')
@extend_schema(
description='Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels and can be altered momentarily by effects in battles.',
tags=[ 'pokemon' ]
)
class StatResource(PokeapiCommonViewset):
queryset = Stat.objects.all()
serializer_class = StatDetailSerializer
list_serializer_class = StatSummarySerializer
@extend_schema(description='Super contest effects refer to the effects of moves when used in super contests.')
@extend_schema(
description='Super contest effects refer to the effects of moves when used in super contests.',
tags=[ 'contests' ]
)
class SuperContestEffectResource(PokeapiCommonViewset):
queryset = SuperContestEffect.objects.all()
serializer_class = SuperContestEffectDetailSerializer
list_serializer_class = SuperContestEffectSummarySerializer
@extend_schema(description='Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is super effective against, which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against.')
@extend_schema(
description='Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is super effective against, which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against.',
tags=[ 'pokemon' ]
)
class TypeResource(PokeapiCommonViewset):
queryset = Type.objects.all()
serializer_class = TypeDetailSerializer
list_serializer_class = TypeSummarySerializer
@extend_schema(description='Versions of the games, e.g., Red, Blue or Yellow.')
@extend_schema(
description='Versions of the games, e.g., Red, Blue or Yellow.',
tags=[ 'games' ]
)
class VersionResource(PokeapiCommonViewset):
queryset = Version.objects.all()
serializer_class = VersionDetailSerializer
list_serializer_class = VersionSummarySerializer
@extend_schema(description='Version groups categorize highly similar versions of the games.')
@extend_schema(
description='Version groups categorize highly similar versions of the games.',
tags=[ 'games' ]
)
class VersionGroupResource(PokeapiCommonViewset):
queryset = VersionGroup.objects.all()
serializer_class = VersionGroupDetailSerializer
list_serializer_class = VersionGroupSummarySerializer
@extend_schema(description='Handles Pokemon Encounters as a sub-resource.')
@extend_schema(
description='Handles Pokemon Encounters as a sub-resource.',
tags=[ 'encounters' ]
)
class PokemonEncounterView(APIView):
def get(self, request, pokemon_id):