refactor(portal-api): Device serializers to include user information and ensure consistent Meta class formatting 🔨

This commit is contained in:
2025-06-30 22:29:27 +05:00
parent 428d9ae0e1
commit 3d541831c7

View File

@ -8,7 +8,7 @@ class CreateDeviceSerializer(serializers.ModelSerializer):
name = serializers.CharField(required=True) name = serializers.CharField(required=True)
mac = serializers.CharField(required=True) mac = serializers.CharField(required=True)
class Meta: class Meta: # type: ignore
model = Device model = Device
fields = [ fields = [
"name", "name",
@ -25,17 +25,25 @@ class BlockDeviceSerializer(serializers.ModelSerializer):
choices=[("ADMIN", "Admin"), ("PARENT", "Parent")], required=True choices=[("ADMIN", "Admin"), ("PARENT", "Parent")], required=True
) )
class Meta: class Meta: # type: ignore
model = Device model = Device
fields = ["blocked", "reason_for_blocking", "blocked_by"] fields = ["blocked", "reason_for_blocking", "blocked_by"]
class DeviceSerializer(serializers.ModelSerializer): class DeviceSerializer(serializers.ModelSerializer):
pending_payment_id = serializers.SerializerMethodField() pending_payment_id = serializers.SerializerMethodField()
user = serializers.SerializerMethodField()
class Meta: def get_user(self, obj):
model = Device user = obj.user
fields = "__all__" 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_pending_payment_id(self, obj): def get_pending_payment_id(self, obj):
# Query the last unpaid payment for the device # Query the last unpaid payment for the device
@ -46,6 +54,10 @@ class DeviceSerializer(serializers.ModelSerializer):
) )
return unpaid_payment.id if unpaid_payment else None return unpaid_payment.id if unpaid_payment else None
class Meta: # type: ignore
model = Device
fields = "__all__"
class ReadOnlyDeviceSerializer(serializers.ModelSerializer): class ReadOnlyDeviceSerializer(serializers.ModelSerializer):
user = CustomReadOnlyUserSerializer(read_only=True) user = CustomReadOnlyUserSerializer(read_only=True)