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) features = serializers.ListField(child=serializers.CharField()) badge = serializers.CharField(allow_blank=True) 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)