from rest_framework import serializers class GoPayCreatePaymentRequestSerializer(serializers.Serializer): amount = serializers.DecimalField(max_digits=12, decimal_places=2, min_value=0.01) currency = serializers.CharField(required=False, default="CZK") order_number = serializers.CharField(required=False, allow_blank=True, default="order-001") order_description = serializers.CharField(required=False, allow_blank=True, default="Example GoPay payment") return_url = serializers.URLField(required=False) notify_url = serializers.URLField(required=False) preauthorize = serializers.BooleanField(required=False, default=False) class GoPayPaymentCreatedResponseSerializer(serializers.Serializer): id = serializers.IntegerField() state = serializers.CharField() gw_url = serializers.URLField(required=False, allow_null=True) class GoPayStatusResponseSerializer(serializers.Serializer): id = serializers.IntegerField() state = serializers.CharField() class GoPayRefundRequestSerializer(serializers.Serializer): amount = serializers.DecimalField(max_digits=12, decimal_places=2, required=False, min_value=0.01) class GoPayCaptureRequestSerializer(serializers.Serializer): amount = serializers.DecimalField(max_digits=12, decimal_places=2, required=False, min_value=0.01) class GoPayCreateRecurrenceRequestSerializer(serializers.Serializer): amount = serializers.DecimalField(max_digits=12, decimal_places=2, min_value=0.01) currency = serializers.CharField(required=False, default="CZK") order_number = serializers.CharField(required=False, allow_blank=True, default="recur-001") order_description = serializers.CharField(required=False, allow_blank=True, default="Recurring payment")