Coverage for src/products/serializers/product.py: 100%

38 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-08-04 12:59 +0300

1""" 

2This module contains concrete serializers for each product type and related attributes. 

3 

4It provides: 

5- List and detail serializers for each product type (Earwear, Neckwear, Wristwear, Fingerwear) 

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""" 

10 

11from src.products.models.product import ( 

12 Color, 

13 Earwear, 

14 Metal, 

15 Neckwear, 

16 Stone, 

17 Wristwear, 

18 Fingerwear, 

19 Collection, 

20) 

21 

22from src.products.serializers.base import ( 

23 BaseAttributesSerializer, 

24 BaseProductItemSerializer, 

25 BaseProductListSerializer, 

26) 

27 

28 

29class EarwearListSerializer(BaseProductListSerializer): 

30 class Meta(BaseProductListSerializer.Meta): 

31 model = Earwear 

32 

33 

34class NeckwearListSerializer(BaseProductListSerializer): 

35 class Meta(BaseProductListSerializer.Meta): 

36 model = Neckwear 

37 

38 

39class WristwearListSerializer(BaseProductListSerializer): 

40 class Meta(BaseProductListSerializer.Meta): 

41 model = Wristwear 

42 

43 

44class FingerwearListSerializer(BaseProductListSerializer): 

45 class Meta(BaseProductListSerializer.Meta): 

46 model = Fingerwear 

47 

48 

49class EarwearItemSerializer(BaseProductItemSerializer): 

50 class Meta(BaseProductItemSerializer.Meta): 

51 model = Earwear 

52 

53 

54class NeckwearItemSerializer(BaseProductItemSerializer): 

55 class Meta(BaseProductItemSerializer.Meta): 

56 model = Neckwear 

57 

58 

59class WristwearItemSerializer(BaseProductItemSerializer): 

60 class Meta(BaseProductItemSerializer.Meta): 

61 model = Wristwear 

62 

63 

64class FingerwearItemSerializer(BaseProductItemSerializer): 

65 class Meta(BaseProductItemSerializer.Meta): 

66 model = Fingerwear 

67 

68 

69class CollectionSerializer(BaseAttributesSerializer): 

70 class Meta(BaseAttributesSerializer.Meta): 

71 model = Collection 

72 

73 

74class ColorSerializer(BaseAttributesSerializer): 

75 class Meta(BaseAttributesSerializer.Meta): 

76 model = Color 

77 

78 

79class MetalSerializer(BaseAttributesSerializer): 

80 class Meta(BaseAttributesSerializer.Meta): 

81 model = Metal 

82 

83 

84class StoneSerializer(BaseAttributesSerializer): 

85 class Meta(BaseAttributesSerializer.Meta): 

86 model = Stone