"""
PM Module — Form Schemas.

تعریف schema فرم‌های ماژول مدیریت پروژه.
"""

# ═══════════════════════════════════════════════════
# Project Form
# ═══════════════════════════════════════════════════

PROJECT_FORM = {
    "id": "pm_project_form",
    "title": "پروژه",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "code", "label": "کد پروژه", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 500},
                {
                    "name": "project_type", "label": "نوع پروژه", "type": "select", "required": True,
                    "default": "project",
                    "options": [
                        {"value": "portfolio", "label": "پورتفولیو"},
                        {"value": "program", "label": "برنامه"},
                        {"value": "project", "label": "پروژه"},
                        {"value": "sub_project", "label": "زیرپروژه"},
                    ],
                },
                {
                    "name": "priority", "label": "اولویت", "type": "select", "required": True,
                    "default": "medium",
                    "options": [
                        {"value": "critical", "label": "بحرانی"},
                        {"value": "high", "label": "بالا"},
                        {"value": "medium", "label": "متوسط"},
                        {"value": "low", "label": "پایین"},
                    ],
                },
                {"name": "parent", "label": "پروژه مادر", "type": "lookup", "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
            ],
        },
        {
            "id": "dates",
            "title": "تاریخ‌ها",
            "fields": [
                {"name": "planned_start", "label": "شروع برنامه‌ای", "type": "date_jalali"},
                {"name": "planned_end", "label": "پایان برنامه‌ای", "type": "date_jalali"},
            ],
        },
        {
            "id": "organization",
            "title": "سازمان",
            "fields": [
                {"name": "company", "label": "شرکت", "type": "lookup", "lookup_endpoint": "/api/v1/organization/companies/"},
                {"name": "org_unit", "label": "واحد سازمانی", "type": "lookup", "lookup_endpoint": "/api/v1/organization/organizational-units/"},
                {"name": "manager", "label": "مدیر پروژه", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
                {"name": "currency", "label": "واحد پول", "type": "lookup", "lookup_endpoint": "/api/v1/localization/currencies/"},
                {"name": "calendar", "label": "تقویم", "type": "lookup", "lookup_endpoint": "/api/v1/pm/calendars/"},
            ],
        },
        {
            "id": "budget",
            "title": "بودجه",
            "fields": [
                {"name": "total_budget", "label": "بودجه کل", "type": "number", "min": 0, "step": 1},
                {"name": "estimated_cost", "label": "هزینه تخمینی", "type": "number", "min": 0, "step": 1},
            ],
        },
        {
            "id": "settings",
            "title": "تنظیمات",
            "fields": [
                {"name": "color", "label": "رنگ", "type": "text", "default": "#3B82F6"},
                {"name": "tags", "label": "برچسب‌ها", "type": "text", "description": "برچسب‌ها را با کاما جدا کنید"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Task Form
# ═══════════════════════════════════════════════════

TASK_FORM = {
    "id": "pm_task_form",
    "title": "تسک",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 500},
                {
                    "name": "task_type", "label": "نوع", "type": "select", "required": True,
                    "default": "task",
                    "options": [
                        {"value": "task", "label": "تسک"},
                        {"value": "milestone", "label": "مایلستون"},
                        {"value": "summary", "label": "خلاصه"},
                    ],
                },
                {"name": "parent", "label": "تسک والد", "type": "lookup", "lookup_endpoint": "/api/v1/pm/tasks/"},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
            ],
        },
        {
            "id": "schedule",
            "title": "زمان‌بندی",
            "fields": [
                {"name": "planned_start", "label": "شروع برنامه‌ای", "type": "date_jalali"},
                {"name": "planned_end", "label": "پایان برنامه‌ای", "type": "date_jalali"},
                {"name": "duration_days", "label": "مدت (روز)", "type": "number", "min": 0, "step": 1},
            ],
        },
        {
            "id": "assignment",
            "title": "تخصیص",
            "fields": [
                {"name": "assignee", "label": "مسئول", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
                {"name": "estimated_cost", "label": "هزینه تخمینی", "type": "number", "min": 0, "step": 1},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Resource Form
# ═══════════════════════════════════════════════════

RESOURCE_FORM = {
    "id": "pm_resource_form",
    "title": "منبع",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "name", "label": "نام", "type": "text", "required": True, "max_length": 200},
                {
                    "name": "resource_type", "label": "نوع منبع", "type": "select", "required": True,
                    "default": "human",
                    "options": [
                        {"value": "human", "label": "انسانی"},
                        {"value": "equipment", "label": "تجهیزات"},
                        {"value": "material", "label": "مواد"},
                    ],
                },
                {"name": "email", "label": "ایمیل", "type": "email"},
                {"name": "phone", "label": "تلفن", "type": "tel"},
                {"name": "company", "label": "شرکت", "type": "lookup", "lookup_endpoint": "/api/v1/organization/companies/"},
            ],
        },
        {
            "id": "rates",
            "title": "نرخ‌ها",
            "fields": [
                {"name": "standard_rate", "label": "نرخ استاندارد", "type": "number", "min": 0, "step": 1},
                {"name": "overtime_rate", "label": "نرخ اضافه‌کاری", "type": "number", "min": 0, "step": 1},
                {"name": "cost_per_use", "label": "هزینه هر استفاده", "type": "number", "min": 0, "step": 1},
                {"name": "currency", "label": "واحد پول", "type": "lookup", "lookup_endpoint": "/api/v1/localization/currencies/"},
            ],
        },
        {
            "id": "capacity",
            "title": "ظرفیت",
            "fields": [
                {"name": "max_units", "label": "حداکثر ظرفیت (%)", "type": "number", "min": 0, "max": 200, "step": 1, "default": 100},
                {"name": "calendar", "label": "تقویم", "type": "lookup", "lookup_endpoint": "/api/v1/pm/calendars/"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Risk Form
# ═══════════════════════════════════════════════════

RISK_FORM = {
    "id": "pm_risk_form",
    "title": "ریسک",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 500},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {"name": "category", "label": "دسته‌بندی", "type": "text", "max_length": 100},
            ],
        },
        {
            "id": "assessment",
            "title": "ارزیابی",
            "fields": [
                {
                    "name": "probability", "label": "احتمال", "type": "select", "required": True,
                    "options": [
                        {"value": "very_low", "label": "بسیار کم"},
                        {"value": "low", "label": "کم"},
                        {"value": "medium", "label": "متوسط"},
                        {"value": "high", "label": "بالا"},
                        {"value": "very_high", "label": "بسیار بالا"},
                    ],
                },
                {
                    "name": "impact", "label": "تأثیر", "type": "select", "required": True,
                    "options": [
                        {"value": "very_low", "label": "بسیار کم"},
                        {"value": "low", "label": "کم"},
                        {"value": "medium", "label": "متوسط"},
                        {"value": "high", "label": "بالا"},
                        {"value": "very_high", "label": "بسیار بالا"},
                    ],
                },
                {
                    "name": "response_strategy", "label": "استراتژی پاسخ", "type": "select",
                    "options": [
                        {"value": "avoid", "label": "اجتناب"},
                        {"value": "mitigate", "label": "کاهش"},
                        {"value": "transfer", "label": "انتقال"},
                        {"value": "accept", "label": "پذیرش"},
                    ],
                },
                {"name": "owner", "label": "مالک ریسک", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
            ],
        },
        {
            "id": "impact_details",
            "title": "جزئیات تأثیر",
            "fields": [
                {"name": "cost_impact", "label": "تأثیر هزینه‌ای", "type": "number", "min": 0, "step": 1},
                {"name": "schedule_impact_days", "label": "تأثیر زمانی (روز)", "type": "number", "min": 0, "step": 1},
                {"name": "response_plan", "label": "برنامه پاسخ", "type": "textarea"},
                {"name": "trigger_conditions", "label": "شرایط محرک", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Change Request Form
# ═══════════════════════════════════════════════════

CHANGE_REQUEST_FORM = {
    "id": "pm_change_request_form",
    "title": "درخواست تغییر",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات درخواست",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 500},
                {"name": "description", "label": "توضیحات", "type": "textarea", "required": True},
                {
                    "name": "priority", "label": "اولویت", "type": "select", "required": True,
                    "default": "medium",
                    "options": [
                        {"value": "critical", "label": "بحرانی"},
                        {"value": "high", "label": "بالا"},
                        {"value": "medium", "label": "متوسط"},
                        {"value": "low", "label": "پایین"},
                    ],
                },
            ],
        },
        {
            "id": "impact",
            "title": "تحلیل تأثیر",
            "fields": [
                {"name": "impact_analysis", "label": "تحلیل تأثیر", "type": "textarea"},
                {"name": "cost_impact", "label": "تأثیر هزینه‌ای", "type": "number", "min": 0, "step": 1},
                {"name": "schedule_impact_days", "label": "تأثیر زمانی (روز)", "type": "number", "min": 0, "step": 1},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Budget Form
# ═══════════════════════════════════════════════════

BUDGET_FORM = {
    "id": "pm_budget_form",
    "title": "بودجه",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات بودجه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "task", "label": "تسک (WBS)", "type": "lookup", "lookup_endpoint": "/api/v1/pm/tasks/"},
                {"name": "name", "label": "عنوان بودجه", "type": "text", "required": True, "max_length": 200},
                {"name": "original_budget", "label": "بودجه اولیه", "type": "number", "required": True, "min": 0, "step": 1},
                {"name": "currency", "label": "واحد پول", "type": "lookup", "lookup_endpoint": "/api/v1/localization/currencies/"},
            ],
        },
        {
            "id": "period",
            "title": "دوره",
            "fields": [
                {"name": "period_start", "label": "شروع دوره", "type": "date_jalali"},
                {"name": "period_end", "label": "پایان دوره", "type": "date_jalali"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Issue Form
# ═══════════════════════════════════════════════════

ISSUE_FORM = {
    "id": "pm_issue_form",
    "title": "مسئله",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 500},
                {"name": "description", "label": "شرح مسئله", "type": "textarea"},
                {
                    "name": "category", "label": "دسته‌بندی", "type": "select",
                    "options": [
                        {"value": "technical", "label": "فنی"},
                        {"value": "resource", "label": "منابع"},
                        {"value": "schedule", "label": "زمان‌بندی"},
                        {"value": "cost", "label": "هزینه"},
                        {"value": "scope", "label": "دامنه"},
                        {"value": "quality", "label": "کیفیت"},
                        {"value": "communication", "label": "ارتباطات"},
                        {"value": "other", "label": "سایر"},
                    ],
                },
            ],
        },
        {
            "id": "classification",
            "title": "طبقه‌بندی",
            "fields": [
                {
                    "name": "severity", "label": "شدت", "type": "select", "required": True,
                    "options": [
                        {"value": "critical", "label": "بحرانی"},
                        {"value": "major", "label": "عمده"},
                        {"value": "moderate", "label": "متوسط"},
                        {"value": "minor", "label": "جزئی"},
                    ],
                },
                {
                    "name": "priority", "label": "اولویت", "type": "select", "required": True,
                    "options": [
                        {"value": "critical", "label": "بحرانی"},
                        {"value": "high", "label": "بالا"},
                        {"value": "medium", "label": "متوسط"},
                        {"value": "low", "label": "پایین"},
                    ],
                },
                {"name": "reporter", "label": "گزارش‌دهنده", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
                {"name": "assignee", "label": "مسئول رسیدگی", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
            ],
        },
        {
            "id": "impact",
            "title": "تأثیر و ارتباطات",
            "fields": [
                {"name": "impact_description", "label": "شرح تأثیر", "type": "textarea"},
                {"name": "cost_impact", "label": "تأثیر هزینه‌ای", "type": "number", "min": 0, "step": 1},
                {"name": "schedule_impact_days", "label": "تأثیر زمانی (روز)", "type": "number", "min": 0, "step": 1},
                {"name": "related_risk", "label": "ریسک مرتبط", "type": "lookup", "lookup_endpoint": "/api/v1/pm/risks/"},
                {"name": "identified_date", "label": "تاریخ شناسایی", "type": "date_jalali"},
                {"name": "due_date", "label": "مهلت رسیدگی", "type": "date_jalali"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# OBS Form
# ═══════════════════════════════════════════════════

OBS_FORM = {
    "id": "pm_obs_form",
    "title": "گره ساختار شکست سازمانی",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "parent", "label": "گره والد", "type": "lookup", "lookup_endpoint": "/api/v1/pm/obs-nodes/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "name", "label": "نام", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {
                    "name": "node_type", "label": "نوع گره", "type": "select", "required": True,
                    "default": "department",
                    "options": [
                        {"value": "department", "label": "دپارتمان"},
                        {"value": "division", "label": "بخش"},
                        {"value": "team", "label": "تیم"},
                        {"value": "individual", "label": "فرد"},
                        {"value": "external", "label": "پیمانکار/خارجی"},
                    ],
                },
            ],
        },
        {
            "id": "assignment",
            "title": "تخصیص و مسئولیت",
            "fields": [
                {"name": "manager", "label": "مدیر/مسئول", "type": "lookup", "lookup_endpoint": "/api/v1/auth/users/"},
                {"name": "org_unit_id", "label": "واحد سازمانی مرجع", "type": "lookup", "lookup_endpoint": "/api/v1/hrm/org-units/"},
                {"name": "responsibilities", "label": "شرح مسئولیت‌ها", "type": "textarea"},
                {"name": "sort_order", "label": "ترتیب نمایش", "type": "number", "min": 0, "default": 0},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# RBS Form
# ═══════════════════════════════════════════════════

RBS_FORM = {
    "id": "pm_rbs_form",
    "title": "گره ساختار شکست منابع",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "parent", "label": "گره والد", "type": "lookup", "lookup_endpoint": "/api/v1/pm/rbs-nodes/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "name", "label": "نام", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {
                    "name": "node_type", "label": "نوع گره", "type": "select", "required": True,
                    "default": "category",
                    "options": [
                        {"value": "category", "label": "دسته‌بندی"},
                        {"value": "human", "label": "نیروی انسانی"},
                        {"value": "equipment", "label": "تجهیزات"},
                        {"value": "material", "label": "مواد"},
                        {"value": "facility", "label": "تسهیلات"},
                        {"value": "financial", "label": "مالی"},
                        {"value": "information", "label": "اطلاعاتی"},
                    ],
                },
            ],
        },
        {
            "id": "resource_detail",
            "title": "مشخصات منبع",
            "fields": [
                {"name": "resource_type", "label": "نوع منبع", "type": "text", "max_length": 100},
                {"name": "unit", "label": "واحد اندازه‌گیری", "type": "text", "max_length": 50},
                {"name": "default_rate", "label": "نرخ پیش‌فرض", "type": "decimal", "min": 0, "default": 0},
                {"name": "sort_order", "label": "ترتیب نمایش", "type": "number", "min": 0, "default": 0},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Quality Plan Form
# ═══════════════════════════════════════════════════

QUALITY_PLAN_FORM = {
    "id": "pm_quality_plan_form",
    "title": "طرح کیفیت",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "name", "label": "نام", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {
                    "name": "status", "label": "وضعیت", "type": "select", "default": "draft",
                    "options": [
                        {"value": "draft", "label": "پیش‌نویس"},
                        {"value": "active", "label": "فعال"},
                        {"value": "under_review", "label": "در حال بررسی"},
                        {"value": "approved", "label": "تأیید شده"},
                        {"value": "archived", "label": "بایگانی"},
                    ],
                },
                {"name": "quality_manager", "label": "مدیر کیفیت", "type": "lookup", "lookup_endpoint": "/api/v1/platform/users/"},
                {"name": "version", "label": "نسخه", "type": "text", "max_length": 20, "default": "1.0"},
            ],
        },
        {
            "id": "details",
            "title": "جزئیات",
            "fields": [
                {"name": "criteria", "label": "معیارها", "type": "textarea"},
                {"name": "standards", "label": "استانداردها", "type": "textarea"},
                {"name": "objectives", "label": "اهداف", "type": "textarea"},
                {"name": "scope", "label": "محدوده", "type": "textarea"},
                {"name": "effective_date", "label": "تاریخ مؤثر", "type": "date"},
                {"name": "review_date", "label": "تاریخ بازبینی", "type": "date"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Inspection Form
# ═══════════════════════════════════════════════════

INSPECTION_FORM = {
    "id": "pm_inspection_form",
    "title": "بازرسی",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {
                    "name": "inspection_type", "label": "نوع بازرسی", "type": "select", "required": True,
                    "default": "quality_audit",
                    "options": [
                        {"value": "quality_audit", "label": "ممیزی کیفیت"},
                        {"value": "process_inspection", "label": "بازرسی فرآیند"},
                        {"value": "product_inspection", "label": "بازرسی محصول"},
                        {"value": "milestone_review", "label": "بازبینی نقطه عطف"},
                        {"value": "final_inspection", "label": "بازرسی نهایی"},
                        {"value": "random_sampling", "label": "نمونه‌برداری"},
                    ],
                },
                {"name": "quality_plan", "label": "طرح کیفیت", "type": "lookup", "lookup_endpoint": "/api/v1/pm/quality-plans/"},
                {"name": "task", "label": "فعالیت", "type": "lookup", "lookup_endpoint": "/api/v1/pm/tasks/"},
                {"name": "inspector", "label": "بازرس", "type": "lookup", "lookup_endpoint": "/api/v1/platform/users/"},
            ],
        },
        {
            "id": "schedule",
            "title": "زمان‌بندی و نتایج",
            "fields": [
                {"name": "planned_date", "label": "تاریخ برنامه‌ریزی", "type": "date"},
                {"name": "actual_date", "label": "تاریخ واقعی", "type": "date"},
                {
                    "name": "status", "label": "وضعیت", "type": "select", "default": "planned",
                    "options": [
                        {"value": "planned", "label": "برنامه‌ریزی شده"},
                        {"value": "in_progress", "label": "در حال انجام"},
                        {"value": "completed", "label": "انجام شده"},
                        {"value": "cancelled", "label": "لغو شده"},
                    ],
                },
                {
                    "name": "result", "label": "نتیجه", "type": "select", "default": "na",
                    "options": [
                        {"value": "passed", "label": "قبول"},
                        {"value": "failed", "label": "مردود"},
                        {"value": "conditional", "label": "مشروط"},
                        {"value": "na", "label": "نامشخص"},
                    ],
                },
                {"name": "findings", "label": "یافته‌ها", "type": "textarea"},
                {"name": "recommendations", "label": "توصیه‌ها", "type": "textarea"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# NCR Form
# ═══════════════════════════════════════════════════

NCR_FORM = {
    "id": "pm_ncr_form",
    "title": "عدم انطباق (NCR)",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "code", "label": "کد", "type": "text", "required": True, "max_length": 50},
                {"name": "title", "label": "عنوان", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {
                    "name": "severity", "label": "شدت", "type": "select", "required": True, "default": "minor",
                    "options": [
                        {"value": "minor", "label": "جزئی"},
                        {"value": "major", "label": "عمده"},
                        {"value": "critical", "label": "بحرانی"},
                    ],
                },
                {"name": "inspection", "label": "بازرسی", "type": "lookup", "lookup_endpoint": "/api/v1/pm/inspections/"},
                {"name": "task", "label": "فعالیت", "type": "lookup", "lookup_endpoint": "/api/v1/pm/tasks/"},
                {"name": "reported_by", "label": "گزارش‌دهنده", "type": "lookup", "lookup_endpoint": "/api/v1/platform/users/"},
                {"name": "assigned_to", "label": "مسئول رفع", "type": "lookup", "lookup_endpoint": "/api/v1/platform/users/"},
            ],
        },
        {
            "id": "analysis",
            "title": "تحلیل و اقدام",
            "fields": [
                {"name": "root_cause", "label": "علت ریشه‌ای", "type": "textarea"},
                {"name": "corrective_action", "label": "اقدام اصلاحی", "type": "textarea"},
                {"name": "preventive_action", "label": "اقدام پیشگیرانه", "type": "textarea"},
                {"name": "cost_impact", "label": "اثر هزینه‌ای (ریال)", "type": "decimal", "min": 0, "default": 0},
                {"name": "schedule_impact_days", "label": "اثر زمانی (روز)", "type": "number", "min": 0, "default": 0},
            ],
        },
        {
            "id": "dates",
            "title": "تاریخ‌ها",
            "fields": [
                {"name": "identified_date", "label": "تاریخ شناسایی", "type": "date"},
                {"name": "due_date", "label": "مهلت رفع", "type": "date"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Quality Checklist Form
# ═══════════════════════════════════════════════════

QUALITY_CHECKLIST_FORM = {
    "id": "pm_quality_checklist_form",
    "title": "چک‌لیست کیفیت",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "name", "label": "نام", "type": "text", "required": True, "max_length": 200},
                {"name": "description", "label": "توضیحات", "type": "textarea"},
                {"name": "quality_plan", "label": "طرح کیفیت", "type": "lookup", "lookup_endpoint": "/api/v1/pm/quality-plans/"},
                {"name": "task", "label": "فعالیت", "type": "lookup", "lookup_endpoint": "/api/v1/pm/tasks/"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}


# ═══════════════════════════════════════════════════
# Project Document Form
# ═══════════════════════════════════════════════════

PROJECT_DOCUMENT_FORM = {
    "id": "pm_project_document_form",
    "title": "لینک مستند به پروژه",
    "sections": [
        {
            "id": "basic",
            "title": "اطلاعات پایه",
            "fields": [
                {"name": "project", "label": "پروژه", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/pm/projects/"},
                {"name": "document_id", "label": "سند", "type": "lookup", "required": True, "lookup_endpoint": "/api/v1/document-control/documents/"},
                {"name": "title", "label": "عنوان سند", "type": "text", "required": True, "max_length": 300},
                {"name": "document_code", "label": "کد سند", "type": "text", "max_length": 100},
                {"name": "entity_type", "label": "نوع موجودیت", "type": "select", "options": [
                    {"value": "project", "label": "پروژه"},
                    {"value": "task", "label": "فعالیت"},
                    {"value": "risk", "label": "ریسک"},
                    {"value": "change_request", "label": "درخواست تغییر"},
                    {"value": "quality_plan", "label": "طرح کیفیت"},
                    {"value": "inspection", "label": "بازرسی"},
                    {"value": "ncr", "label": "عدم انطباق"},
                ]},
                {"name": "entity_id", "label": "شناسه موجودیت", "type": "text"},
                {"name": "notes", "label": "یادداشت", "type": "textarea"},
            ],
        },
    ],
}
