# serializers_admin_txns.py
from rest_framework import serializers

class AdminTransactionRowSerializer(serializers.Serializer):
    # Base model fields
    order_id = serializers.CharField()
    user_id  = serializers.IntegerField(source="uid")   # map alias back to user_id
    user_name = serializers.CharField()
    user_mobile = serializers.CharField()
    recharge_amount = serializers.DecimalField(max_digits=12, decimal_places=2)
    recharge_status = serializers.CharField()
    is_refunded = serializers.BooleanField()
    provider_commission = serializers.DecimalField(max_digits=12, decimal_places=3, allow_null=True)

    # PaymentTransaction (aliased)
    payment_service = serializers.CharField(source="pay_service", allow_null=True)
    payment_status = serializers.CharField(source="pay_status", allow_null=True)
    razorpay_order_id = serializers.CharField(source="pay_razorpay_order_id", allow_null=True)

    # RechargeTransaction (aliased)
    operator = serializers.CharField(source="rchg_operator", allow_null=True)
    circle = serializers.CharField(source="rchg_circle", allow_null=True)
    provider_order_id = serializers.CharField(source="rchg_provider_order_id", allow_null=True)
    recharge_txn_status = serializers.CharField(source="rchg_status", allow_null=True)
    service_type = serializers.CharField(source="rchg_service_type", allow_null=True)
    refund_status = serializers.CharField(source="rchg_refund_status", allow_null=True)
    operator_ref_id = serializers.CharField(source="rchg_operator_ref_id", allow_null=True)

    updated_at = serializers.DateTimeField()
