from apps.master import models as master_model
from base.serializers import DynamicFieldsModelSerializer


class InsuranceCompanyMasterSerializers(DynamicFieldsModelSerializer):
    """
    Serializer class for serializing and deserializing InsuranceCompanyMaster instances.

    This serializer class includes fields for 'id' and 'name'.

    Attributes:
        Meta.model: The model class to which this serializer applies.
        Meta.fields: The fields to include in the serialized representation.
    """

    class Meta:
        model = master_model.InsuranceCompanyMaster
        fields = ["id", "name"]


class InsuranceTypeMasterSerializers(DynamicFieldsModelSerializer):
    """
    Serializer class for serializing and deserializing InsuranceTypeMaster instances.

    This serializer class includes fields for 'id', 'name', and 'insurance_company'.

    Attributes:
        Meta.model: The model class to which this serializer applies.
        Meta.fields: The fields to include in the serialized representation.
    """

    insurance_company_data = InsuranceCompanyMasterSerializers(
        source="insurance_company", read_only=True
    )

    class Meta:
        model = master_model.InsuranceTypeMaster
        fields = ["id", "name", "insurance_company", "insurance_company_data"]
