Coverage for src/products/serializers/product.py: 100%
50 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-21 16:24 +0300
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-21 16:24 +0300
1"""
2This module contains concrete serializers for each product type and related attributes.
4It provides:
5- List and detail serializers for each product type (Earring, Necklace, Pendant, Bracelet, Watch)
6- Attribute serializers for product properties like color, metal, stone, and collection
7- All serializers are based on shared base serializers for consistency and reuse
8- Used for product list/detail API endpoints and for serializing product attributes
9"""
11from src.products.models.product import (
12 Bracelet,
13 Color,
14 Earring,
15 Metal,
16 Necklace,
17 Pendant,
18 Ring,
19 Stone,
20 Collection,
21 Watch,
22)
24from src.products.serializers.base import (
25 BaseAttributesSerializer,
26 BaseProductItemSerializer,
27 BaseProductListSerializer,
28)
31class EarringListSerializer(BaseProductListSerializer):
32 class Meta(BaseProductListSerializer.Meta):
33 model = Earring
36class NecklaceListSerializer(BaseProductListSerializer):
37 class Meta(BaseProductListSerializer.Meta):
38 model = Necklace
41class PendantListSerializer(BaseProductListSerializer):
42 class Meta(BaseProductListSerializer.Meta):
43 model = Pendant
46class BraceletListSerializer(BaseProductListSerializer):
47 class Meta(BaseProductListSerializer.Meta):
48 model = Bracelet
51class RingListSerializer(BaseProductListSerializer):
52 class Meta(BaseProductListSerializer.Meta):
53 model = Ring
56class WatchListSerializer(BaseProductListSerializer):
57 class Meta(BaseProductListSerializer.Meta):
58 model = Watch
61class BraceletItemSerializer(BaseProductItemSerializer):
62 class Meta(BaseProductItemSerializer.Meta):
63 model = Bracelet
66class WatchItemSerializer(BaseProductItemSerializer):
67 class Meta(BaseProductItemSerializer.Meta):
68 model = Watch
71class RingItemSerializer(BaseProductItemSerializer):
72 class Meta(BaseProductItemSerializer.Meta):
73 model = Ring
76class EarringItemSerializer(BaseProductItemSerializer):
77 class Meta(BaseProductItemSerializer.Meta):
78 model = Earring
81class NecklaceItemSerializer(BaseProductItemSerializer):
82 class Meta(BaseProductItemSerializer.Meta):
83 model = Necklace
86class PendantItemSerializer(BaseProductItemSerializer):
87 class Meta(BaseProductItemSerializer.Meta):
88 model = Pendant
91class CollectionSerializer(BaseAttributesSerializer):
92 class Meta(BaseAttributesSerializer.Meta):
93 model = Collection
96class ColorSerializer(BaseAttributesSerializer):
97 class Meta(BaseAttributesSerializer.Meta):
98 model = Color
101class MetalSerializer(BaseAttributesSerializer):
102 class Meta(BaseAttributesSerializer.Meta):
103 model = Metal
106class StoneSerializer(BaseAttributesSerializer):
107 class Meta(BaseAttributesSerializer.Meta):
108 model = Stone