34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from rest_framework import serializers
|
|
|
|
|
|
class PlanSerializer(serializers.Serializer):
|
|
id = serializers.CharField()
|
|
title = serializers.CharField()
|
|
price = serializers.IntegerField()
|
|
currency = serializers.CharField(required=False)
|
|
popular = serializers.BooleanField()
|
|
discountPercent = serializers.IntegerField(required=False)
|
|
durationDays = serializers.IntegerField(required=False)
|
|
|
|
|
|
class PlansListResponseSerializer(serializers.Serializer):
|
|
plans = PlanSerializer(many=True)
|
|
|
|
|
|
class PurchaseRequestSerializer(serializers.Serializer):
|
|
# هدر Idempotency-Key هم روی همین درخواست لازمه (بخش ۴.۳ سند API)؛
|
|
# از request.headers خونده میشه، نه از بدنه.
|
|
planId = serializers.CharField()
|
|
paymentMethod = serializers.CharField(required=False, default='zarinpal')
|
|
|
|
|
|
class PurchaseResponseSerializer(serializers.Serializer):
|
|
orderId = serializers.CharField()
|
|
paymentUrl = serializers.CharField()
|
|
|
|
|
|
class SubscriptionStatusResponseSerializer(serializers.Serializer):
|
|
active = serializers.BooleanField()
|
|
planId = serializers.CharField(allow_null=True)
|
|
expiresAt = serializers.DateTimeField(allow_null=True)
|