Files
sarlink-portal-api/billing/serializers.py
i701 3dafc7d4c8
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Has been cancelled
feat(serializers): add paid_at field to TopupSerializer for improved data tracking
2025-07-05 17:55:26 +05:00

56 lines
1.4 KiB
Python

from rest_framework import serializers
from .models import Payment, Topup
from devices.serializers import DeviceSerializer
class PaymentSerializer(serializers.ModelSerializer):
devices = DeviceSerializer(many=True, read_only=True)
class Meta: # type: ignore
model = Payment
fields = "__all__"
class UpdatePaymentSerializer(serializers.ModelSerializer):
class Meta: # type: ignore
model = Payment
fields = [
"number_of_months",
]
class TopupSerializer(serializers.ModelSerializer):
user = serializers.SerializerMethodField()
is_expired = serializers.SerializerMethodField()
def get_user(self, obj):
user = obj.user
if user:
return {
"id": user.id,
"name": user.first_name + " " + user.last_name,
"id_card": user.id_card,
"mobile": user.mobile,
}
return None
def get_is_expired(self, obj):
return obj.is_expired
class Meta: # type: ignore
model = Topup
fields = [
"id",
"amount",
"user",
"paid",
"paid_at",
"status",
"mib_reference",
"is_expired",
"expires_at",
"created_at",
"updated_at",
]
read_only_fields = ["id", "created_at", "updated_at"]