76 lines
1.9 KiB
Python
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",
|
|
)
|