"""
Management command to initialize onboarding acknowledgement data
"""
from django.core.management.base import BaseCommand
from django.utils import timezone
from apps.accounts.models import (
    AcknowledgementContent,
    AcknowledgementChecklistItem,
    Role
)


class Command(BaseCommand):
    help = 'Initialize default acknowledgement content and checklist items'

    def handle(self, *args, **options):
        self.stdout.write('Initializing onboarding acknowledgement data...')

        # Create generic content (applies to all users)
        self._create_generic_content()

        # Create department-specific content
        self._create_departmental_content()

        # Create role-specific content
        self._create_px_admin_content()
        self._create_hospital_admin_content()
        self._create_department_manager_content()
        self._create_physician_content()
        self._create_staff_content()

        self.stdout.write(self.style.SUCCESS('Onboarding data initialized successfully!'))

    def _create_generic_content(self):
        """Create generic acknowledgement content for all users"""
        self.stdout.write('Creating generic content...')

        role = None  # Generic content

        # Create generic content items
        contents = [
            {
                'code': 'INTRO_PX360',
                'order': 1,
                'title_en': 'Welcome to PX360',
                'title_ar': 'مرحبًا بك في PX360',
                'description_en': 'Overview of the PX360 Patient Experience Management System',
                'description_ar': 'نظرة عامة على نظام إدارة تجربة المريض PX360',
                'content_en': """
                    <h2>Welcome to PX360</h2>
                    <p>PX360 is a comprehensive Patient Experience Management System designed to help healthcare organizations improve patient satisfaction and quality of care.</p>
                    
                    <h3>Key Features:</h3>
                    <ul>
                        <li><strong>Patient Feedback Collection:</strong> Gather and analyze patient feedback across multiple channels</li>
                        <li><strong>Analytics & Reporting:</strong> Real-time dashboards and detailed reports</li>
                        <li><strong>Complaint Management:</strong> Streamlined process for handling patient complaints</li>
                        <li><strong>Quality Observations:</strong> Track and improve service quality</li>
                        <li><strong>Physician Management:</strong> Manage physician profiles and credentials</li>
                        <li><strong>Call Center Integration:</strong> Integrated call center for patient communication</li>
                    </ul>
                    
                    <h3>Getting Started:</h3>
                    <p>This wizard will guide you through the essential features and policies of the system. Please review each section carefully and acknowledge the checklist items to complete your onboarding.</p>
                """,
                'content_ar': """
                    <h2>مرحبًا بك في PX360</h2>
                    <p>PX360 هو نظام شامل لإدارة تجربة المرضى مصمم لمساعدة المؤسسات الصحية على تحسين رضا المرضى وجودة الرعاية.</p>
                    
                    <h3>الميزات الرئيسية:</h3>
                    <ul>
                        <li><strong>جمع ملاحظات المرضى:</strong> جمع وتحليل ملاحظات المرضى عبر قنوات متعددة</li>
                        <li><strong>التحليلات والتقارير:</strong> لوحات تحكم في الوقت الفعلي وتقارير مفصلة</li>
                        <li><strong>إدارة الشكاوى:</strong> عملية مبسطة للتعامل مع شكاوى المرضى</li>
                        <li><strong>ملاحظات الجودة:</strong> تتبع وتحسين جودة الخدمة</li>
                        <li><strong>إدارة الأطباء:</strong> إدارة ملفات الأطباء واعتماداتهم</li>
                        <li><strong>تكامل مركز الاتصال:</strong> مركز اتصال متكامل للتواصل مع المرضى</li>
                    </ul>
                    
                    <h3>البدء:</h3>
                    <p>سيقوم هذا المعالج بإرشادك عبر الميزات والسياسات الأساسية للنظام. يرجى مراجعة كل قسم بعناية والاعتراف بالبنود المدرجة في القائمة لإكمال التسجيل.</p>
                """
            },
            {
                'code': 'DATA_PRIVACY',
                'order': 2,
                'title_en': 'Data Privacy & Security',
                'title_ar': 'خصوصية البيانات والأمان',
                'description_en': 'Understanding data protection and security policies',
                'description_ar': 'فهم سياسات حماية البيانات والأمان',
                'content_en': """
                    <h2>Data Privacy & Security</h2>
                    
                    <h3>Data Protection Principles:</h3>
                    <ul>
                        <li>All patient data is confidential and protected</li>
                        <li>Access is granted based on role and need-to-know basis</li>
                        <li>Data is encrypted in transit and at rest</li>
                        <li>All access is logged and auditable</li>
                    </ul>
                    
                    <h3>User Responsibilities:</h3>
                    <ul>
                        <li>Keep your password secure and do not share it</li>
                        <li>Log out when leaving your workstation</li>
                        <li>Report any suspected security incidents immediately</li>
                        <li>Access only the data you need for your role</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>خصوصية البيانات والأمان</h2>
                    
                    <h3>مبادئ حماية البيانات:</h3>
                    <ul>
                        <li>جميع بيانات المرضى سرية ومحمية</li>
                        <li>يتم منح الوصول بناءً على الدورة والحاجة للمعرفة</li>
                        <li>يتم تشفير البيانات أثناء النقل والتخزين</li>
                        <li>جميع عمليات الوصول مسجلة وقابلة للتدقيق</li>
                    </ul>
                    
                    <h3>مسؤوليات المستخدم:</h3>
                    <ul>
                        <li>احتفظ بكلمة المرور آمنة ولا تشاركها مع أحد</li>
                        <li>قم بتسجيل الخروج عند مغادرة محطة العمل</li>
                        <li>أبلغ عن أي حوادث أمنية مشتبه بها فورًا</li>
                        <li>الوصول فقط إلى البيانات التي تحتاجها لدورك</li>
                    </ul>
                """
            },
            {
                'code': 'SYSTEM_USAGE',
                'order': 3,
                'title_en': 'System Usage Guidelines',
                'title_ar': 'إرشادات استخدام النظام',
                'description_en': 'Best practices for using PX360 effectively',
                'description_ar': 'أفضل الممارسات لاستخدام PX360 بشكل فعال',
                'content_en': """
                    <h2>System Usage Guidelines</h2>
                    
                    <h3>Best Practices:</h3>
                    <ul>
                        <li><strong>Regular Updates:</strong> Check dashboards daily for updates</li>
                        <li><strong>Timely Actions:</strong> Respond to patient feedback and complaints promptly</li>
                        <li><strong>Accurate Data:</strong> Ensure all entered data is accurate and complete</li>
                        <li><strong>Communication:</strong> Use the system for all official communications</li>
                    </ul>
                    
                    <h3>Support:</h3>
                    <p>If you need assistance:</p>
                    <ul>
                        <li>Contact your department manager</li>
                        <li>Submit a support ticket through the help center</li>
                        <li>Refer to the user documentation</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>إرشادات استخدام النظام</h2>
                    
                    <h3>أفضل الممارسات:</h3>
                    <ul>
                        <li><strong>التحديثات المنتظمة:</strong> تحقق من لوحات التحكم يوميًا للحصول على التحديثات</li>
                        <li><strong>الإجراءات في الوقت المناسب:</strong> استجب لملاحظات وشكاوى المرضى بسرعة</li>
                        <li><strong>البيانات الدقيقة:</strong> تأكد من أن جميع البيانات المدخلة دقيقة ومكتملة</li>
                        <li><strong>التواصل:</strong> استخدم النظام لجميع الاتصالات الرسمية</li>
                    </ul>
                    
                    <h3>الدعم:</h3>
                    <p>إذا كنت بحاجة إلى المساعدة:</p>
                    <ul>
                        <li>اتصل بمدير قسمك</li>
                        <li>قدم تذكرة دعم من خلال مركز المساعدة</li>
                        <li>راجع وثائق المستخدم</li>
                    </ul>
                """
            }
        ]

        for content_data in contents:
            AcknowledgementContent.objects.update_or_create(
                code=content_data['code'],
                role=role,
                defaults=content_data
            )

        # Create checklist items for generic content
        intro_content = AcknowledgementContent.objects.get(code='INTRO_PX360')
        privacy_content = AcknowledgementContent.objects.get(code='DATA_PRIVACY')
        usage_content = AcknowledgementContent.objects.get(code='SYSTEM_USAGE')

        checklist_items = [
            {
                'content': intro_content,
                'code': 'INTRO_ACK',
                'order': 1,
                'text_en': 'I have reviewed the PX360 system overview',
                'text_ar': 'لقد راجعت نظرة عامة على نظام PX360',
                'description_en': 'Confirm that you understand the system purpose and key features',
                'description_ar': 'أكد أنك تفهم الغرض من النظام والميزات الرئيسية',
                'is_required': True
            },
            {
                'content': privacy_content,
                'code': 'PRIVACY_ACK',
                'order': 1,
                'text_en': 'I acknowledge and agree to the data privacy and security policies',
                'text_ar': 'أعترف وأوافق على سياسات خصوصية البيانات والأمان',
                'description_en': 'Confirm that you understand your responsibilities regarding data protection',
                'description_ar': 'أكد أنك تفهم مسؤولياتك فيما يتعلق بحماية البيانات',
                'is_required': True
            },
            {
                'content': privacy_content,
                'code': 'PRIVACY_PASSWORD',
                'order': 2,
                'text_en': 'I will keep my password secure and report any security incidents',
                'text_ar': 'سأحتفظ بكلمة المرور آمنة وسأبلغ عن أي حوادث أمنية',
                'description_en': 'Commit to password security and incident reporting',
                'description_ar': 'الالتزام بأمان كلمة المرور والإبلاغ عن الحوادث',
                'is_required': True
            },
            {
                'content': usage_content,
                'code': 'USAGE_ACK',
                'order': 1,
                'text_en': 'I will follow system usage guidelines and best practices',
                'text_ar': 'سأتبع إرشادات استخدام النظام وأفضل الممارسات',
                'description_en': 'Commit to using the system effectively and responsibly',
                'description_ar': 'الالتزام باستخدام النظام بفعالية ومسؤولية',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )

    def _create_departmental_content(self):
        """Create department-specific acknowledgement content"""
        self.stdout.write('Creating departmental acknowledgement content...')

        role = None  # Generic content - applies to all users based on department

        # Departmental acknowledgement contents
        departmental_contents = [
            {
                'code': 'DEPT_CLINICS',
                'order': 5,
                'title_en': 'Clinics Operations',
                'title_ar': 'عمليات العيادات',
                'description_en': 'Clinics policies and procedures',
                'description_ar': 'سياسات وإجراءات العيادات',
                'content_en': """
                    <h2>Clinics Operations</h2>
                    <p>Review and acknowledge the following Clinics policies and procedures:</p>
                    <ul>
                        <li>Patient registration and intake procedures</li>
                        <li>Appointment scheduling guidelines</li>
                        <li>Clinic opening and closing protocols</li>
                        <li>Patient flow management</li>
                        <li>Documentation requirements</li>
                        <li>Infection control protocols</li>
                        <li>Patient privacy and confidentiality</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>عمليات العيادات</h2>
                    <p>راجع واعترف بالسياسات والإجراءات التالية للعيادات:</p>
                    <ul>
                        <li>إجراءات تسجيل واستقبال المرضى</li>
                        <li>إرشادات جدولة المواعيد</li>
                        <li>بروتوكولات فتح وإغلاق العيادات</li>
                        <li>إدارة تدفق المرضى</li>
                        <li>متطلبات التوثيق</li>
                        <li>بروتوكولات مكافحة العدوى</li>
                        <li>خصوصية وسرية المرضى</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_ADMISSIONS',
                'order': 6,
                'title_en': 'Admissions & Social Services',
                'title_ar': 'القبول والخدمات الاجتماعية',
                'description_en': 'Admissions and social services procedures',
                'description_ar': 'إجراءات القبول والخدمات الاجتماعية',
                'content_en': """
                    <h2>Admissions & Social Services</h2>
                    <p>Review and acknowledge the following Admissions & Social Services procedures:</p>
                    <ul>
                        <li>Patient admission criteria and process</li>
                        <li>Social worker responsibilities</li>
                        <li>Patient assessment protocols</li>
                        <li>Discharge planning procedures</li>
                        <li>Patient support services</li>
                        <li>Family communication guidelines</li>
                        <li>Cultural sensitivity requirements</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>القبول والخدمات الاجتماعية</h2>
                    <p>راجع واعترف بإجراءات القبول والخدمات الاجتماعية التالية:</p>
                    <ul>
                        <li>معايير وعملية قبول المرضى</li>
                        <li>مسؤوليات الأخصائي الاجتماعي</li>
                        <li>بروتوكولات تقييم المرضى</li>
                        <li>إجراءات التخطيط للخروج</li>
                        <li>خدمات دعم المرضى</li>
                        <li>إرشادات التواصل مع العائلة</li>
                        <li>متطلبات الحساسية الثقافية</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_MEDICAL_APPROVALS',
                'order': 7,
                'title_en': 'Medical Approvals',
                'title_ar': 'الموافقات الطبية',
                'description_en': 'Medical approval procedures and protocols',
                'description_ar': 'إجراءات وبروتوكولات الموافقة الطبية',
                'content_en': """
                    <h2>Medical Approvals</h2>
                    <p>Review and acknowledge the following Medical Approval procedures:</p>
                    <ul>
                        <li>Treatment authorization process</li>
                        <li>Physician approval workflows</li>
                        <li>Emergency approval protocols</li>
                        <li>Documentation requirements</li>
                        <li>Compliance with MOH regulations</li>
                        <li>Audit trail maintenance</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>الموافقات الطبية</h2>
                    <p>راجع واعترف بإجراءات الموافقة الطبية التالية:</p>
                    <ul>
                        <li>عملية ترخيص العلاج</li>
                        <li>سير عمل الموافقة الطبية</li>
                        <li>بروتوكولات الموافقة في حالات الطوارئ</li>
                        <li>متطلبات التوثيق</li>
                        <li>الامتثال للوائح وزارة الصحة</li>
                        <li>الحفاظ على سجل التدقيق</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_CALL_CENTER',
                'order': 8,
                'title_en': 'Call Center Operations',
                'title_ar': 'عمليات مركز الاتصال',
                'description_en': 'Call center policies and procedures',
                'description_ar': 'سياسات وإجراءات مركز الاتصال',
                'content_en': """
                    <h2>Call Center Operations</h2>
                    <p>Review and acknowledge the following Call Center policies:</p>
                    <ul>
                        <li>Call handling procedures</li>
                        <li>Customer service standards</li>
                        <li>Emergency call protocols</li>
                        <li>Recording and documentation</li>
                        <li>Privacy and confidentiality</li>
                        <li>Escalation procedures</li>
                        <li>Performance metrics</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>عمليات مركز الاتصال</h2>
                    <p>راجع واعترف بسياسات مركز الاتصال التالية:</p>
                    <ul>
                        <li>إجراءات التعامل مع المكالمات</li>
                        <li>معايير خدمة العملاء</li>
                        <li>بروتوكولات مكالمات الطوارئ</li>
                        <li>التسجيل والتوثيق</li>
                        <li>الخصوصية والسرية</li>
                        <li>إجراءات التصعيد</li>
                        <li>مقاييس الأداء</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_PAYMENTS',
                'order': 9,
                'title_en': 'Payments & Billing',
                'title_ar': 'الدفع والفواتير',
                'description_en': 'Payment processing and billing procedures',
                'description_ar': 'إجراءات معالجة الدفع والفوترة',
                'content_en': """
                    <h2>Payments & Billing</h2>
                    <p>Review and acknowledge the following Payment & Billing procedures:</p>
                    <ul>
                        <li>Payment processing protocols</li>
                        <li>Insurance verification procedures</li>
                        <li>Billing documentation requirements</li>
                        <li>Refund policies</li>
                        <li>Financial privacy and security</li>
                        <li>Audit compliance</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>الدفع والفواتير</h2>
                    <p>راجع واعترف بإجراءات الدفع والفوترة التالية:</p>
                    <ul>
                        <li>بروتوكولات معالجة الدفع</li>
                        <li>إجراءات التحقق من التأمين</li>
                        <li>متطلبات توثيق الفواتير</li>
                        <li>سياسات الاسترداد</li>
                        <li>خصوصية وأمان البيانات المالية</li>
                        <li>امتثال التدقيق</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_EMERGENCY',
                'order': 10,
                'title_en': 'Emergency Services',
                'title_ar': 'خدمات الطوارئ',
                'description_en': 'Emergency services protocols and procedures',
                'description_ar': 'بروتوكولات وإجراءات خدمات الطوارئ',
                'content_en': """
                    <h2>Emergency Services</h2>
                    <p>Review and acknowledge the following Emergency Services protocols:</p>
                    <ul>
                        <li>Triage procedures</li>
                        <li>Emergency response protocols</li>
                        <li>Documentation requirements</li>
                        <li>Team coordination procedures</li>
                        <li>Communication protocols</li>
                        <li>Quality assurance in emergencies</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>خدمات الطوارئ</h2>
                    <p>راجع واعترف ببروتوكولات خدمات الطوارئ التالية:</p>
                    <ul>
                        <li>إجراءات التصنيف</li>
                        <li>بروتوكولات الاستجابة للطوارئ</li>
                        <li>متطلبات التوثيق</li>
                        <li>إجراءات تنسيق الفريق</li>
                        <li>بروتوكولات التواصل</li>
                        <li>ضمان الجودة في حالات الطوارئ</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_MEDICAL_REPORTS',
                'order': 11,
                'title_en': 'Medical Reports',
                'title_ar': 'التقارير الطبية',
                'description_en': 'Medical report generation and management',
                'description_ar': 'إنشاء وإدارة التقارير الطبية',
                'content_en': """
                    <h2>Medical Reports</h2>
                    <p>Review and acknowledge the following Medical Report procedures:</p>
                    <ul>
                        <li>Report generation protocols</li>
                        <li>Medical record documentation</li>
                        <li>Privacy and confidentiality</li>
                        <li>Report distribution procedures</li>
                        <li>Quality control requirements</li>
                        <li>Compliance with regulations</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>التقارير الطبية</h2>
                    <p>راجع واعترف بإجراءات التقارير الطبية التالية:</p>
                    <ul>
                        <li>بروتوكولات إنشاء التقارير</li>
                        <li>توثيق السجلات الطبية</li>
                        <li>الخصوصية والسرية</li>
                        <li>إجراءات توزيع التقارير</li>
                        <li>متطلبات مراقبة الجودة</li>
                        <li>الامتثال للوائح</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_ADMISSIONS_OFFICE',
                'order': 12,
                'title_en': 'Admissions Office',
                'title_ar': 'مكتب القبول',
                'description_en': 'Admissions office operations',
                'description_ar': 'عمليات مكتب القبول',
                'content_en': """
                    <h2>Admissions Office</h2>
                    <p>Review and acknowledge the following Admissions Office procedures:</p>
                    <ul>
                        <li>Patient registration procedures</li>
                        <li>Bed management protocols</li>
                        <li>Transfer coordination</li>
                        <li>Documentation standards</li>
                        <li>Patient communication</li>
                        <li>Inter-department coordination</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>مكتب القبول</h2>
                    <p>راجع واعترف بإجراءات مكتب القبول التالية:</p>
                    <ul>
                        <li>إجراءات تسجيل المرضى</li>
                        <li>بروتوكولات إدارة الأسرة</li>
                        <li>تنسيق النقل</li>
                        <li>معايير التوثيق</li>
                        <li>التواصل مع المرضى</li>
                        <li>التنسيق بين الأقسام</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_CBAHI',
                'order': 13,
                'title_en': 'CBAHI Standards',
                'title_ar': 'معايير CBAHI',
                'description_en': 'CBAHI accreditation standards',
                'description_ar': 'معايير اعتماد CBAHI',
                'content_en': """
                    <h2>CBAHI Standards</h2>
                    <p>Review and acknowledge the following CBAHI requirements:</p>
                    <ul>
                        <li>CBAHI accreditation standards</li>
                        <li>Quality management requirements</li>
                        <li>Patient safety protocols</li>
                        <li>Documentation compliance</li>
                        <li>Continuous quality improvement</li>
                        <li>Audit preparation</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>معايير CBAHI</h2>
                    <p>راجع واعترف بمتطلبات CBAHI التالية:</p>
                    <ul>
                        <li>معايير اعتماد CBAHI</li>
                        <li>متطلبات إدارة الجودة</li>
                        <li>بروتوكولات سلامة المرضى</li>
                        <li>امتثال التوثيق</li>
                        <li>التحسين المستمر للجودة</li>
                        <li>الاستعداد للتدقيق</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_HR_PORTAL',
                'order': 14,
                'title_en': 'HR Portal',
                'title_ar': 'بوابة الموارد البشرية',
                'description_en': 'HR portal usage and procedures',
                'description_ar': 'استخدام وإجراءات بوابة الموارد البشرية',
                'content_en': """
                    <h2>HR Portal</h2>
                    <p>Review and acknowledge the following HR Portal procedures:</p>
                    <ul>
                        <li>HR portal access and login</li>
                        <li>Personal information management</li>
                        <li>Leave request procedures</li>
                        <li>Training and development resources</li>
                        <li>Performance management</li>
                        <li>HR policies and procedures</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>بوابة الموارد البشرية</h2>
                    <p>راجع واعترف بإجراءات بوابة الموارد البشرية التالية:</p>
                    <ul>
                        <li>الوصول وتسجيل الدخول إلى بوابة الموارد البشرية</li>
                        <li>إدارة المعلومات الشخصية</li>
                        <li>إجراءات طلب الإجازة</li>
                        <li>موارد التدريب والتطوير</li>
                        <li>إدارة الأداء</li>
                        <li>سياسات وإجراءات الموارد البشرية</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_GENERAL_ORIENTATION',
                'order': 15,
                'title_en': 'General Orientation',
                'title_ar': 'التوجيه العام',
                'description_en': 'General orientation and onboarding',
                'description_ar': 'التوجيه العام والتسجيل',
                'content_en': """
                    <h2>General Orientation</h2>
                    <p>Review and acknowledge the following General Orientation information:</p>
                    <ul>
                        <li>Hospital mission and values</li>
                        <li>Organizational structure</li>
                        <li>Code of conduct</li>
                        <li>Safety protocols</li>
                        <li>Patient rights and responsibilities</li>
                        <li>Quality standards</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>التوجيه العام</h2>
                    <p>راجع واعترف بمعلومات التوجيه العام التالية:</p>
                    <ul>
                        <li>مهمة وقيم المستشفى</li>
                        <li>الهيكل التنظيمي</li>
                        <li>مدونة السلوك</li>
                        <li>بروتوكولات السلامة</li>
                        <li>حقوق ومسؤوليات المرضى</li>
                        <li>معايير الجودة</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_SEHATY',
                'order': 16,
                'title_en': 'Sehaty App',
                'title_ar': 'تطبيق صحتي',
                'description_en': 'Sehaty app usage for sick leaves',
                'description_ar': 'استخدام تطبيق صحتي للإجازات المرضية',
                'content_en': """
                    <h2>Sehaty App</h2>
                    <p>Review and acknowledge the following Sehaty App procedures:</p>
                    <ul>
                        <li>App login and authentication</li>
                        <li>Sick leave request process</li>
                        <li>Medical certificate upload</li>
                        <li>Leave tracking and management</li>
                        <li>Integration with HR system</li>
                        <li>Privacy and data security</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>تطبيق صحتي</h2>
                    <p>راجع واعترف بإجراءات تطبيق صحتي التالية:</p>
                    <ul>
                        <li>تسجيل الدخول والمصادقة في التطبيق</li>
                        <li>عملية طلب الإجازة المرضية</li>
                        <li>تحميل الشهادة الطبية</li>
                        <li>تتبع وإدارة الإجازات</li>
                        <li>التكامل مع نظام الموارد البشرية</li>
                        <li>خصوصية وأمان البيانات</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_MOH_CARE',
                'order': 17,
                'title_en': 'MOH Care Portal',
                'title_ar': 'بوابة رعاية وزارة الصحة',
                'description_en': 'MOH Care portal procedures',
                'description_ar': 'إجراءات بوابة رعاية وزارة الصحة',
                'content_en': """
                    <h2>MOH Care Portal</h2>
                    <p>Review and acknowledge the following MOH Care Portal procedures:</p>
                    <ul>
                        <li>Portal access and authentication</li>
                        <li>Patient record access</li>
                        <li>MOH reporting requirements</li>
                        <li>Data synchronization</li>
                        <li>Compliance with MOH regulations</li>
                        <li>Security protocols</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>بوابة رعاية وزارة الصحة</h2>
                    <p>راجع واعترف بإجراءات بوابة رعاية وزارة الصحة التالية:</p>
                    <ul>
                        <li>الوصول والمصادقة على البوابة</li>
                        <li>الوصول إلى سجلات المرضى</li>
                        <li>متطلبات الإبلاغ لوزارة الصحة</li>
                        <li>مزامنة البيانات</li>
                        <li>الامتثال للوائح وزارة الصحة</li>
                        <li>بروتوكولات الأمان</li>
                    </ul>
                """
            },
            {
                'code': 'DEPT_CHI_CARE',
                'order': 18,
                'title_en': 'CHI Care Portal',
                'title_ar': 'بوابة رعاية CHI',
                'description_en': 'CHI Care portal procedures',
                'description_ar': 'إجراءات بوابة رعاية CHI',
                'content_en': """
                    <h2>CHI Care Portal</h2>
                    <p>Review and acknowledge the following CHI Care Portal procedures:</p>
                    <ul>
                        <li>Portal access and authentication</li>
                        <li>Patient information management</li>
                        <li>Insurance verification</li>
                        <li>Claims processing</li>
                        <li>Data security protocols</li>
                        <li>System integration</li>
                    </ul>
                """,
                'content_ar': """
                    <h2>بوابة رعاية CHI</h2>
                    <p>راجع واعترف بإجراءات بوابة رعاية CHI التالية:</p>
                    <ul>
                        <li>الوصول والمصادقة على البوابة</li>
                        <li>إدارة معلومات المرضى</li>
                        <li>التحقق من التأمين</li>
                        <li>معالجة المطالبات</li>
                        <li>بروتوكولات أمان البيانات</li>
                        <li>تكامل النظام</li>
                    </ul>
                """
            }
        ]

        # Create content items
        content_map = {}
        for content_data in departmental_contents:
            content, created = AcknowledgementContent.objects.update_or_create(
                code=content_data['code'],
                role=role,
                defaults=content_data
            )
            content_map[content_data['code']] = content

        # Create checklist items for each department
        departmental_checklist_items = [
            # Clinics
            {'content_code': 'DEPT_CLINICS', 'code': 'CLINICS_ACK', 'order': 1, 
             'text_en': 'I have reviewed and acknowledge Clinics operations policies', 
             'text_ar': 'لقد راجعت وأعترف بسياسات عمليات العيادات',
             'description_en': 'Acknowledgement of Clinics policies', 'description_ar': 'اعتراف بسياسات العيادات'},
            
            # Admissions / Social Services
            {'content_code': 'DEPT_ADMISSIONS', 'code': 'ADMISSIONS_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Admissions & Social Services procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات القبول والخدمات الاجتماعية',
             'description_en': 'Acknowledgement of Admissions procedures', 'description_ar': 'اعتراف بإجراءات القبول'},
            
            # Medical Approvals
            {'content_code': 'DEPT_MEDICAL_APPROVALS', 'code': 'MED_APPROVALS_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Medical Approval protocols',
             'text_ar': 'لقد راجعت وأعترف ببروتوكولات الموافقة الطبية',
             'description_en': 'Acknowledgement of Medical Approvals', 'description_ar': 'اعتراف بالموافقات الطبية'},
            
            # Call Center
            {'content_code': 'DEPT_CALL_CENTER', 'code': 'CALL_CENTER_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Call Center policies',
             'text_ar': 'لقد راجعت وأعترف بسياسات مركز الاتصال',
             'description_en': 'Acknowledgement of Call Center policies', 'description_ar': 'اعتراف بسياسات مركز الاتصال'},
            
            # Payments
            {'content_code': 'DEPT_PAYMENTS', 'code': 'PAYMENTS_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Payments & Billing procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات الدفع والفوترة',
             'description_en': 'Acknowledgement of Payment procedures', 'description_ar': 'اعتراف بإجراءات الدفع'},
            
            # Emergency Services
            {'content_code': 'DEPT_EMERGENCY', 'code': 'EMERGENCY_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Emergency Services protocols',
             'text_ar': 'لقد راجعت وأعترف ببروتوكولات خدمات الطوارئ',
             'description_en': 'Acknowledgement of Emergency Services', 'description_ar': 'اعتراف بخدمات الطوارئ'},
            
            # Medical Reports
            {'content_code': 'DEPT_MEDICAL_REPORTS', 'code': 'MED_REPORTS_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Medical Report procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات التقارير الطبية',
             'description_en': 'Acknowledgement of Medical Reports', 'description_ar': 'اعتراف بالتقارير الطبية'},
            
            # Admissions Office
            {'content_code': 'DEPT_ADMISSIONS_OFFICE', 'code': 'ADMISSIONS_OFFICE_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Admissions Office procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات مكتب القبول',
             'description_en': 'Acknowledgement of Admissions Office', 'description_ar': 'اعتراف بمكتب القبول'},
            
            # CBAHI
            {'content_code': 'DEPT_CBAHI', 'code': 'CBAHI_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge CBAHI standards and requirements',
             'text_ar': 'لقد راجعت وأعترف بمعايير ومتطلبات CBAHI',
             'description_en': 'Acknowledgement of CBAHI standards', 'description_ar': 'اعتراف بمعايير CBAHI'},
            
            # HR Portal
            {'content_code': 'DEPT_HR_PORTAL', 'code': 'HR_PORTAL_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge HR Portal usage procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات استخدام بوابة الموارد البشرية',
             'description_en': 'Acknowledgement of HR Portal', 'description_ar': 'اعتراف ببوابة الموارد البشرية'},
            
            # General Orientation
            {'content_code': 'DEPT_GENERAL_ORIENTATION', 'code': 'ORIENTATION_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge General Orientation information',
             'text_ar': 'لقد راجعت وأعترف بمعلومات التوجيه العام',
             'description_en': 'Acknowledgement of General Orientation', 'description_ar': 'اعتراف بالتوجيه العام'},
            
            # Sehaty App
            {'content_code': 'DEPT_SEHATY', 'code': 'SEHATY_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge Sehaty App usage for sick leaves',
             'text_ar': 'لقد راجعت وأعترف باستخدام تطبيق صحتي للإجازات المرضية',
             'description_en': 'Acknowledgement of Sehaty App', 'description_ar': 'اعتراف بتطبيق صحتي'},
            
            # MOH Care Portal
            {'content_code': 'DEPT_MOH_CARE', 'code': 'MOH_CARE_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge MOH Care Portal procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات بوابة رعاية وزارة الصحة',
             'description_en': 'Acknowledgement of MOH Care Portal', 'description_ar': 'اعتراف ببوابة رعاية وزارة الصحة'},
            
            # CHI Care Portal
            {'content_code': 'DEPT_CHI_CARE', 'code': 'CHI_CARE_ACK', 'order': 1,
             'text_en': 'I have reviewed and acknowledge CHI Care Portal procedures',
             'text_ar': 'لقد راجعت وأعترف بإجراءات بوابة رعاية CHI',
             'description_en': 'Acknowledgement of CHI Care Portal', 'description_ar': 'اعتراف ببوابة رعاية CHI'},
        ]

        for item_data in departmental_checklist_items:
            content = content_map.get(item_data.pop('content_code'))
            if content:
                item_data['content'] = content
                item_data['is_required'] = True  # All departmental acknowledgements are required
                AcknowledgementChecklistItem.objects.update_or_create(
                    code=item_data['code'],
                    defaults=item_data
                )

    def _create_px_admin_content(self):
        """Create PX Admin specific content"""
        try:
            role = Role.objects.get(name='PX_ADMIN')
        except Role.DoesNotExist:
            self.stdout.write(self.style.WARNING('PX Admin role not found, skipping PX Admin content'))
            return

        self.stdout.write('Creating PX Admin content...')

        content_data = {
            'code': 'PX_ADMIN_RESP',
            'role': role,
            'order': 4,
            'title_en': 'PX Admin Responsibilities',
            'title_ar': 'مسؤوليات مسؤول PX',
            'description_en': 'Understanding PX Admin role and permissions',
            'description_ar': 'فهم دور وصلاحيات مسؤول PX',
            'content_en': """
                <h2>PX Admin Responsibilities</h2>
                <p>As a PX Admin, you have full access to all system features and are responsible for:</p>
                <ul>
                    <li>User and role management</li>
                    <li>System configuration</li>
                    <li>Audit and compliance</li>
                    <li>Content management for acknowledgements</li>
                    <li>Organizational settings</li>
                </ul>
                <p><strong>Note:</strong> With great power comes great responsibility. All your actions are logged and audited.</p>
            """,
            'content_ar': """
                <h2>مسؤوليات مسؤول PX</h2>
                <p>بصفتك مسؤول PX، لديك حق الوصول الكامل إلى جميع ميزات النظام ومسؤول عن:</p>
                <ul>
                    <li>إدارة المستخدمين والأدوار</li>
                    <li>تكوين النظام</li>
                    <li>التدقيق والامتثال</li>
                    <li>إدارة المحتوى للاعترافات</li>
                    <li>إعدادات المؤسسة</li>
                </ul>
                <p><strong>ملاحظة:</strong> مع السلطة العالية تأتي المسؤولية الكبيرة. جميع إجراءاتك مسجلة وقابلة للتدقيق.</p>
            """
        }

        content, _ = AcknowledgementContent.objects.update_or_create(
            code=content_data['code'],
            role=role,
            defaults=content_data
        )

        checklist_items = [
            {
                'content': content,
                'code': 'PX_ADMIN_OVERSIGHT',
                'order': 1,
                'text_en': 'I understand my role as PX Admin and will use permissions responsibly',
                'text_ar': 'أفهم دوري كمسؤول PX وسأستخدم الصلاحيات بمسؤولية',
                'description_en': 'Accept responsibility for PX Admin role',
                'description_ar': 'قبول المسؤولية لدور مسؤول PX',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )

    def _create_hospital_admin_content(self):
        """Create Hospital Admin specific content"""
        try:
            role = Role.objects.get(name='HOSPITAL_ADMIN')
        except Role.DoesNotExist:
            return

        self.stdout.write('Creating Hospital Admin content...')

        content_data = {
            'code': 'HOSPITAL_ADMIN_RESP',
            'role': role,
            'order': 4,
            'title_en': 'Hospital Admin Responsibilities',
            'title_ar': 'مسؤوليات مدير المستشفى',
            'description_en': 'Understanding Hospital Admin role and scope',
            'description_ar': 'فهم دور ونطاق مدير المستشفى',
            'content_en': """
                <h2>Hospital Admin Responsibilities</h2>
                <p>As a Hospital Admin, you can manage users, view reports, and oversee operations within your hospital.</p>
                <ul>
                    <li>Manage hospital-level settings</li>
                    <li>Oversee department operations</li>
                    <li>Access comprehensive analytics</li>
                    <li>Manage hospital staff</li>
                </ul>
            """,
            'content_ar': """
                <h2>مسؤوليات مدير المستشفى</h2>
                <p>بصفتك مدير المستشفى، يمكنك إدارة المستخدمين وعرض التقارير والإشراف على العمليات داخل مستشفاك.</p>
                <ul>
                    <li>إدارة إعدادات مستوى المستشفى</li>
                    <li>الإشراف على عمليات الأقسام</li>
                    <li>الوصول إلى تحليلات شاملة</li>
                    <li>إدارة موظفي المستشفى</li>
                </ul>
            """
        }

        content, _ = AcknowledgementContent.objects.update_or_create(
            code=content_data['code'],
            role=role,
            defaults=content_data
        )

        checklist_items = [
            {
                'content': content,
                'code': 'HOSPITAL_ADMIN_SCOPE',
                'order': 1,
                'text_en': 'I understand my Hospital Admin role and hospital-level responsibilities',
                'text_ar': 'أفهم دوري كمدير مستشفى ومسؤولياتي على مستوى المستشفى',
                'description_en': 'Accept responsibility for Hospital Admin role',
                'description_ar': 'قبول المسؤولية لدور مدير المستشفى',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )

    def _create_department_manager_content(self):
        """Create Department Manager specific content"""
        try:
            role = Role.objects.get(name='DEPARTMENT_MANAGER')
        except Role.DoesNotExist:
            return

        self.stdout.write('Creating Department Manager content...')

        content_data = {
            'code': 'DEPT_MGR_RESP',
            'role': role,
            'order': 4,
            'title_en': 'Department Manager Responsibilities',
            'title_ar': 'مسؤوليات مدير القسم',
            'description_en': 'Understanding Department Manager role and operations',
            'description_ar': 'فهم دور وعمليات مدير القسم',
            'content_en': """
                <h2>Department Manager Responsibilities</h2>
                <p>As a Department Manager, you oversee your department's operations and staff performance.</p>
                <ul>
                    <li>Manage department staff</li>
                    <li>Monitor department metrics</li>
                    <li>Respond to department-specific feedback</li>
                    <li>Improve patient experience in your area</li>
                </ul>
            """,
            'content_ar': """
                <h2>مسؤوليات مدير القسم</h2>
                <p>بصفتك مدير القسم، تشرف على عمليات قسمك وأداء الموظفين.</p>
                <ul>
                    <li>إدارة موظفي القسم</li>
                    <li>مراقبة مؤشرات القسم</li>
                    <li>الرد على الملاحظات الخاصة بالقسم</li>
                    <li>تحسين تجربة المريض في منطقتك</li>
                </ul>
            """
        }

        content, _ = AcknowledgementContent.objects.update_or_create(
            code=content_data['code'],
            role=role,
            defaults=content_data
        )

        checklist_items = [
            {
                'content': content,
                'code': 'DEPT_MGR_SCOPE',
                'order': 1,
                'text_en': 'I understand my Department Manager role and responsibilities',
                'text_ar': 'أفهم دوري ومسؤولياتي كمدير قسم',
                'description_en': 'Accept responsibility for Department Manager role',
                'description_ar': 'قبول المسؤولية لدور مدير القسم',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )

    def _create_physician_content(self):
        """Create Physician specific content"""
        try:
            role = Role.objects.get(name='PHYSICIAN')
        except Role.DoesNotExist:
            return

        self.stdout.write('Creating Physician content...')

        content_data = {
            'code': 'PHYSICIAN_RESP',
            'role': role,
            'order': 4,
            'title_en': 'Physician Responsibilities',
            'title_ar': 'مسؤوليات الطبيب',
            'description_en': 'Understanding Physician role in PX360',
            'description_ar': 'فهم دور الطبيب في PX360',
            'content_en': """
                <h2>Physician Responsibilities</h2>
                <p>As a Physician, you play a key role in patient experience and quality of care.</p>
                <ul>
                    <li>Review and respond to patient feedback</li>
                    <li>Maintain accurate physician profile</li>
                    <li>Participate in quality initiatives</li>
                    <li>Improve patient care based on insights</li>
                </ul>
            """,
            'content_ar': """
                <h2>مسؤوليات الطبيب</h2>
                <p>بصفتك طبيبًا، تلعب دورًا رئيسيًا في تجربة المريض وجودة الرعاية.</p>
                <ul>
                    <li>مراجعة والرد على ملاحظات المرضى</li>
                    <li>الحفاظ على ملف الطبيب بدقة</li>
                    <li>المشاركة في مبادرات الجودة</li>
                    <li>تحسين رعاية المرضى بناءً على الرؤى</li>
                </ul>
            """
        }

        content, _ = AcknowledgementContent.objects.update_or_create(
            code=content_data['code'],
            role=role,
            defaults=content_data
        )

        checklist_items = [
            {
                'content': content,
                'code': 'PHYSICIAN_SCOPE',
                'order': 1,
                'text_en': 'I understand my Physician role and commitment to patient care',
                'text_ar': 'أفهم دوري كطبيب والالتزام برعاية المرضى',
                'description_en': 'Accept responsibility for Physician role',
                'description_ar': 'قبول المسؤولية لدور الطبيب',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )

    def _create_staff_content(self):
        """Create Staff specific content"""
        try:
            role = Role.objects.get(name='STAFF')
        except Role.DoesNotExist:
            return

        self.stdout.write('Creating Staff content...')

        content_data = {
            'code': 'STAFF_RESP',
            'role': role,
            'order': 4,
            'title_en': 'Staff Responsibilities',
            'title_ar': 'مسؤوليات الموظف',
            'description_en': 'Understanding Staff role and daily operations',
            'description_ar': 'فهم دور الموظف والعمليات اليومية',
            'content_en': """
                <h2>Staff Responsibilities</h2>
                <p>As a Staff member, you contribute to daily operations and patient experience.</p>
                <ul>
                    <li>Complete assigned tasks efficiently</li>
                    <li>Report patient feedback and concerns</li>
                    <li>Follow established procedures</li>
                    <li>Maintain high service standards</li>
                </ul>
            """,
            'content_ar': """
                <h2>مسؤوليات الموظف</h2>
                <p>بصفتك موظفًا، تساهم في العمليات اليومية وتجربة المريض.</p>
                <ul>
                    <li>إكمال المهام المخصصة بكفاءة</li>
                    <li>الإبلاغ عن ملاحظات ومخاوف المرضى</li>
                    <li>اتباع الإجراءات المعمول بها</li>
                    <li>الحفاظ على معايير خدمة عالية</li>
                </ul>
            """
        }

        content, _ = AcknowledgementContent.objects.update_or_create(
            code=content_data['code'],
            role=role,
            defaults=content_data
        )

        checklist_items = [
            {
                'content': content,
                'code': 'STAFF_SCOPE',
                'order': 1,
                'text_en': 'I understand my Staff role and commitment to quality service',
                'text_ar': 'أفهم دوري كموظف والالتزام بخدمة عالية الجودة',
                'description_en': 'Accept responsibility for Staff role',
                'description_ar': 'قبول المسؤولية لدور الموظف',
                'is_required': True
            }
        ]

        for item_data in checklist_items:
            AcknowledgementChecklistItem.objects.update_or_create(
                code=item_data['code'],
                defaults=item_data
            )
