Files
sarlink-portal-api/billing/serializers.py

60 lines
1.5 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)
is_expired = serializers.SerializerMethodField()
def get_is_expired(self, obj):
return obj.is_expired
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"]