"""
Module Settings — Serializers (API Layer)

سریالایزرهای REST API سیستم تنظیمات.
"""
from rest_framework import serializers


class ModuleSettingsSerializer(serializers.Serializer):
    """سریالایزر تنظیمات کامل یک ماژول."""

    module_key = serializers.CharField(read_only=True)
    settings_data = serializers.JSONField()
    created_at = serializers.DateTimeField(read_only=True)
    updated_at = serializers.DateTimeField(read_only=True)


class ModuleSettingsUpdateSerializer(serializers.Serializer):
    """سریالایزر بروزرسانی تنظیمات کامل."""

    settings_data = serializers.JSONField(required=True)


class SettingValueUpdateSerializer(serializers.Serializer):
    """سریالایزر بروزرسانی یک تنظیم خاص."""

    path = serializers.CharField(
        required=True,
        help_text="مسیر تنظیم (مثلاً 'leave.max_days_per_request')",
    )
    value = serializers.JSONField(
        required=True,
        help_text="مقدار جدید",
    )


class SettingSectionUpdateSerializer(serializers.Serializer):
    """سریالایزر بروزرسانی یک بخش."""

    section_key = serializers.CharField(required=True)
    section_data = serializers.JSONField(required=True)


class ModuleInfoSerializer(serializers.Serializer):
    """سریالایزر اطلاعات ماژول."""

    module_key = serializers.CharField()
    module_label = serializers.CharField()
    label = serializers.CharField()
    label_en = serializers.CharField()
    description = serializers.CharField()
    has_saved_settings = serializers.BooleanField(default=False)
