from rest_framework import serializers
from .models import Appointments


class AppointmentsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Appointments
        fields = "__all__"

    def to_representation(self, instance):
        representation = super().to_representation(instance)
        instance_dict = instance._meta.fields

        for field in instance_dict:
            value = getattr(instance, field.name)
            representation[field.name] = str(value)

        return representation

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        method = self.context.get("method", None)

        if method and method in ["PUT", "PATCH"]:
            init_fields = list(self.fields.keys())

            for field in init_fields:
                if field != "remarks":
                    self.fields.pop(field)
