from rest_framework import serializers
from .models import SiteSetting, Videos, IndexSlide, SeoSetting


class SiteSettingDynamicSerializer(serializers.ModelSerializer):
    def __init__(self, *args, **kwargs):
        fields = kwargs.pop('fields', None)
        super().__init__(*args, **kwargs)
        if fields is not None:
            filtered = set(fields)
            existing = set(self.fields)
            for item in existing - set(filtered):
                self.fields.pop(item)


class SiteSettingSerializer(SiteSettingDynamicSerializer):
    class Meta:
        model = SiteSetting
        fields = "__all__"


class SeoSettingSerializer(SiteSettingDynamicSerializer):
    class Meta:
        model = SeoSetting
        fields = "__all__"


class VideosListSerializer(serializers.ModelSerializer):
    class Meta:
        model = Videos
        fields = "__all__"


class SlidesListSerializer(serializers.ModelSerializer):
    class Meta:
        model = IndexSlide
        fields = "__all__"
