| 1746 | |
| 1747 | |
| 1748 | class ItemDetailSerializer(serializers.ModelSerializer): |
| 1749 | names = ItemNameSerializer(many=True, read_only=True, source="itemname") |
| 1750 | game_indices = ItemGameIndexSerializer( |
| 1751 | many=True, read_only=True, source="itemgameindex" |
| 1752 | ) |
| 1753 | effect_entries = ItemEffectTextSerializer( |
| 1754 | many=True, read_only=True, source="itemeffecttext" |
| 1755 | ) |
| 1756 | flavor_text_entries = ItemFlavorTextSerializer( |
| 1757 | many=True, read_only=True, source="itemflavortext" |
| 1758 | ) |
| 1759 | category = ItemCategorySummarySerializer(source="item_category") |
| 1760 | attributes = serializers.SerializerMethodField("get_item_attributes") |
| 1761 | fling_effect = ItemFlingEffectSummarySerializer(source="item_fling_effect") |
| 1762 | held_by_pokemon = serializers.SerializerMethodField(source="get_held_by_pokemon") |
| 1763 | baby_trigger_for = serializers.SerializerMethodField(source="get_baby_trigger_for") |
| 1764 | sprites = serializers.SerializerMethodField("get_item_sprites") |
| 1765 | machines = serializers.SerializerMethodField("get_item_machines") |
| 1766 | |
| 1767 | class Meta: |
| 1768 | model = Item |
| 1769 | fields = ( |
| 1770 | "id", |
| 1771 | "name", |
| 1772 | "cost", |
| 1773 | "fling_power", |
| 1774 | "fling_effect", |
| 1775 | "attributes", |
| 1776 | "category", |
| 1777 | "effect_entries", |
| 1778 | "flavor_text_entries", |
| 1779 | "game_indices", |
| 1780 | "names", |
| 1781 | "held_by_pokemon", |
| 1782 | "sprites", |
| 1783 | "baby_trigger_for", |
| 1784 | "machines", |
| 1785 | ) |
| 1786 | |
| 1787 | @extend_schema_field( |
| 1788 | field={ |
| 1789 | "type": "array", |
| 1790 | "items": { |
| 1791 | "type": "object", |
| 1792 | "required": ["machine", "version_group"], |
| 1793 | "properties": { |
| 1794 | "machine": { |
| 1795 | "type": "string", |
| 1796 | "format": "uri", |
| 1797 | "examples": ["https://pokeapi.co/api/v2/machine/1/"], |
| 1798 | }, |
| 1799 | "version_group": { |
| 1800 | "type": "object", |
| 1801 | "required": ["name", "url"], |
| 1802 | "properties": { |
| 1803 | "name": {"type": "string", "examples": ["sword-shield"]}, |
| 1804 | "url": { |
| 1805 | "type": "string", |
nothing calls this directly
no test coverage detected