promotions/apps/promotions/serializers.py
Sayyid Hamid Mahdavi 450aadd6da first test pass
2025-11-06 14:11:00 +03:30

76 lines
1.9 KiB
Python

from rest_framework import serializers
from .models import Promotion, Plan, Event
class PromotionSerializer(serializers.ModelSerializer):
# base_amount = serializers.IntegerField(required=True)
# promotion_amount = serializers.IntegerField(read_only=True)
user = serializers.UUIDField(source='user_uuid')
class Meta:
model = Promotion
fields = (
"uuid",
"base_amount",
"promotion_amount",
"state",
"user",
)
class EventSerializer(serializers.ModelSerializer):
class Meta:
model = Event
fields = (
"label",
"data",
"user",
"application",
)
read_only_fields = ('user', 'application')
class PlanSerializer(serializers.ModelSerializer):
base_amount = serializers.IntegerField(required=True)
promotion_amount = serializers.IntegerField(read_only=True)
class Meta:
model = Plan
fields = ("title",
"description",
"base_amount",
"application",
"promotion_amount"
)
read_only_fields = ('application', "promotion_amount", "title", "description")
# def get_promotion_amount(self, obj):
# user = self.context['request'].user
# return obj.calculate_promotion(user)
class PlanPromotSerializer(serializers.ModelSerializer):
class Meta:
model = Promotion
fields = (
"user",
"application",
)
read_only_fields = ('user', 'application')
class PromoteSerializer(serializers.ModelSerializer):
label = serializers.CharField(write_only=True)
data = serializers.JSONField(write_only=True)
promotions = PromotionSerializer(many=True, read_only=True)
class Meta:
model = Promotion
fields = (
"promotions",
"label",
"data",
)