"""
Settings Schema — Inventory Module.

اسکیمای صفحه تنظیمات ماژول مدیریت انبار و موجودی.
این schema توسط schema-engine فرانت‌اند رندر می‌شود.
"""

INVENTORY_SETTINGS_PAGE = {
    "id": "inventory_settings_page",
    "type": "settings",
    "title": "تنظیمات انبار و موجودی",
    "title_en": "Inventory Settings",
    "module": "inventory",
    "api": {
        "get": "api:GET:/api/v1/settings/modules/inventory/",
        "save": "api:PUT:/api/v1/settings/modules/inventory/",
        "schema": "api:GET:/api/v1/settings/modules/inventory/schema/",
        "reset": "api:POST:/api/v1/settings/modules/inventory/reset/",
    },
    "sections": [
        {
            "id": "general",
            "title": "تنظیمات عمومی",
            "icon": "HiOutlineCog6Tooth",
            "description": "تنظیمات عمومی ماژول انبار",
            "fields": [
                {
                    "name": "general.default_currency",
                    "label": "واحد پول پیش‌فرض",
                    "type": "text",
                },
                {
                    "name": "general.allow_negative_stock",
                    "label": "اجازه موجودی منفی",
                    "type": "toggle",
                    "description": "در صورت فعال‌سازی، خروج کالا حتی با موجودی صفر مجاز است",
                },
                {
                    "name": "general.default_uom_precision",
                    "label": "دقت اعشار واحد اندازه‌گیری",
                    "type": "number",
                    "min": 0,
                    "max": 6,
                },
                {
                    "name": "general.auto_generate_item_code",
                    "label": "تولید خودکار کد کالا",
                    "type": "toggle",
                },
                {
                    "name": "general.item_code_prefix",
                    "label": "پیشوند کد کالا",
                    "type": "text",
                    "depends_on": {"field": "general.auto_generate_item_code", "value": True},
                },
            ],
        },
        {
            "id": "tracking",
            "title": "تنظیمات ردیابی",
            "icon": "HiOutlineQrCode",
            "description": "تنظیمات ردیابی بچ، سریال و تاریخ انقضا",
            "fields": [
                {
                    "name": "tracking.enable_batch_tracking",
                    "label": "ردیابی بچ/لات",
                    "type": "toggle",
                    "description": "فعال‌سازی ردیابی شماره بچ/لات برای کالاها",
                },
                {
                    "name": "tracking.enable_serial_tracking",
                    "label": "ردیابی شماره سریال",
                    "type": "toggle",
                },
                {
                    "name": "tracking.enable_expiry_tracking",
                    "label": "ردیابی تاریخ انقضا",
                    "type": "toggle",
                },
                {
                    "name": "tracking.default_warranty_months",
                    "label": "مدت گارانتی پیش‌فرض (ماه)",
                    "type": "number",
                    "min": 0,
                    "max": 120,
                },
                {
                    "name": "tracking.expiry_warning_days",
                    "label": "هشدار انقضا (روز قبل)",
                    "type": "number",
                    "min": 0,
                    "max": 365,
                    "description": "تعداد روز قبل از انقضا برای نمایش هشدار",
                },
            ],
        },
        {
            "id": "costing",
            "title": "تنظیمات قیمت‌گذاری",
            "icon": "HiOutlineCalculator",
            "description": "تنظیمات روش قیمت‌گذاری و محاسبه بهای تمام‌شده",
            "fields": [
                {
                    "name": "costing.default_costing_method",
                    "label": "روش قیمت‌گذاری پیش‌فرض",
                    "type": "select",
                    "options": [
                        {"value": "MAP", "label": "میانگین موزون (MAP)"},
                        {"value": "STANDARD", "label": "استاندارد"},
                        {"value": "FIFO", "label": "FIFO (اولین ورود - اولین خروج)"},
                        {"value": "LIFO", "label": "LIFO (آخرین ورود - اولین خروج)"},
                        {"value": "ACTUAL", "label": "واقعی"},
                    ],
                },
                {
                    "name": "costing.auto_calculate_cost",
                    "label": "محاسبه خودکار بهای تمام‌شده",
                    "type": "toggle",
                },
                {
                    "name": "costing.allow_zero_cost_transactions",
                    "label": "اجازه تراکنش با بهای صفر",
                    "type": "toggle",
                },
            ],
        },
        {
            "id": "reorder",
            "title": "تنظیمات سفارش مجدد",
            "icon": "HiOutlineArrowPath",
            "description": "تنظیمات نقطه سفارش و موجودی ایمنی",
            "fields": [
                {
                    "name": "reorder.enable_reorder_alerts",
                    "label": "هشدار نقطه سفارش",
                    "type": "toggle",
                    "description": "ارسال هشدار هنگام رسیدن موجودی به نقطه سفارش",
                },
                {
                    "name": "reorder.default_lead_time_days",
                    "label": "زمان تحویل پیش‌فرض (روز)",
                    "type": "number",
                    "min": 0,
                    "max": 365,
                },
                {
                    "name": "reorder.default_safety_stock_percentage",
                    "label": "درصد موجودی ایمنی پیش‌فرض",
                    "type": "number",
                    "min": 0,
                    "max": 100,
                    "step": 0.5,
                },
            ],
        },
        {
            "id": "physical_inventory",
            "title": "تنظیمات شمارش موجودی",
            "icon": "HiOutlineClipboardDocumentList",
            "description": "تنظیمات انبارگردانی و شمارش فیزیکی",
            "fields": [
                {
                    "name": "physical_inventory.blind_count",
                    "label": "شمارش کور",
                    "type": "toggle",
                    "description": "مقدار دفتری هنگام شمارش از شمارشگر مخفی می‌شود",
                },
                {
                    "name": "physical_inventory.freeze_stock_during_count",
                    "label": "توقف حرکات هنگام شمارش",
                    "type": "toggle",
                    "description": "جلوگیری از حرکات انبار هنگام شمارش فیزیکی",
                },
                {
                    "name": "physical_inventory.count_rounds",
                    "label": "تعداد مراحل شمارش",
                    "type": "number",
                    "min": 1,
                    "max": 3,
                },
                {
                    "name": "physical_inventory.variance_threshold_percent",
                    "label": "آستانه مغایرت (درصد)",
                    "type": "number",
                    "min": 0,
                    "max": 100,
                    "step": 0.5,
                    "description": "آستانه درصد مغایرت برای علامت‌گذاری خودکار",
                },
                {
                    "name": "physical_inventory.default_cycle_count_frequency_days",
                    "label": "دوره شمارش چرخشی (روز)",
                    "type": "number",
                    "min": 1,
                    "max": 365,
                },
                {
                    "name": "physical_inventory.auto_adjust_after_count",
                    "label": "تعدیل خودکار پس از شمارش",
                    "type": "toggle",
                    "description": "تعدیل خودکار موجودی در صورت مغایرت کمتر از آستانه",
                },
            ],
        },
        {
            "id": "quality",
            "title": "تنظیمات کنترل کیفیت",
            "icon": "HiOutlineShieldCheck",
            "description": "تنظیمات بازرسی و کنترل کیفیت",
            "fields": [
                {
                    "name": "quality.enable_incoming_inspection",
                    "label": "بازرسی ورودی",
                    "type": "toggle",
                    "description": "الزام بازرسی کیفیت برای کالاهای ورودی",
                },
                {
                    "name": "quality.enable_outgoing_inspection",
                    "label": "بازرسی خروجی",
                    "type": "toggle",
                },
                {
                    "name": "quality.default_sample_percentage",
                    "label": "درصد نمونه‌گیری پیش‌فرض",
                    "type": "number",
                    "min": 0,
                    "max": 100,
                    "step": 0.5,
                },
                {
                    "name": "quality.auto_quarantine_on_fail",
                    "label": "قرنطینه خودکار در صورت عدم تأیید",
                    "type": "toggle",
                },
            ],
        },
        {
            "id": "reservation",
            "title": "تنظیمات رزرو موجودی",
            "icon": "HiOutlineLockClosed",
            "description": "تنظیمات رزرو و تخصیص موجودی",
            "fields": [
                {
                    "name": "reservation.default_reservation_priority",
                    "label": "اولویت پیش‌فرض رزرو",
                    "type": "number",
                    "min": 1,
                    "max": 10,
                },
                {
                    "name": "reservation.reservation_expiry_hours",
                    "label": "انقضای رزرو (ساعت)",
                    "type": "number",
                    "min": 1,
                    "max": 720,
                    "description": "مدت زمان اعتبار رزرو قبل از انقضای خودکار",
                },
                {
                    "name": "reservation.auto_release_expired_reservations",
                    "label": "آزادسازی خودکار رزروهای منقضی",
                    "type": "toggle",
                },
            ],
        },
        {
            "id": "reporting",
            "title": "تنظیمات گزارش‌گیری",
            "icon": "HiOutlineChartBar",
            "description": "تنظیمات گزارش‌ها و تحلیل موجودی",
            "fields": [
                {
                    "name": "reporting.aging_bucket_ranges",
                    "label": "بازه‌های عمر موجودی (روز)",
                    "type": "text",
                    "description": "بازه‌های جدا شده با کاما (مثلاً: 0-30,31-60,61-90,91-180,181+)",
                },
                {
                    "name": "reporting.abc_class_a_percent",
                    "label": "درصد کلاس A",
                    "type": "number",
                    "min": 1,
                    "max": 100,
                    "step": 1,
                    "description": "درصد اقلامی که ۸۰٪ ارزش را تشکیل می‌دهند",
                },
                {
                    "name": "reporting.abc_class_b_percent",
                    "label": "درصد کلاس B",
                    "type": "number",
                    "min": 1,
                    "max": 100,
                    "step": 1,
                },
            ],
        },
    ],
}
