""" Management command to seed the 14 default acknowledgement categories. Usage: python manage.py seed_acknowledgements """ from django.core.management.base import BaseCommand from django.utils.translation import gettext_lazy as _ class Command(BaseCommand): help = 'Seed the 14 default acknowledgement categories' # 14 default categories as specified DEFAULT_CATEGORIES = [ { 'code': 'CLINICS', 'name_en': 'Clinics', 'name_ar': 'العيادات', 'icon': 'building', 'color': '#007bbd', }, { 'code': 'ADMISSIONS_SOCIAL', 'name_en': 'Admissions / Social Services', 'name_ar': 'القبول / الخدمات الاجتماعية', 'icon': 'users', 'color': '#005696', }, { 'code': 'MED_APPROVALS', 'name_en': 'Medical Approvals', 'name_ar': 'الموافقات الطبية', 'icon': 'file-check', 'color': '#10b981', }, { 'code': 'CALL_CENTER', 'name_en': 'Call Center', 'name_ar': 'مركز الاتصال', 'icon': 'phone', 'color': '#f59e0b', }, { 'code': 'PAYMENTS', 'name_en': 'Payments', 'name_ar': 'المدفوعات', 'icon': 'credit-card', 'color': '#6366f1', }, { 'code': 'EMERGENCY', 'name_en': 'Emergency Services', 'name_ar': 'خدمات الطوارئ', 'icon': 'alert-circle', 'color': '#ef4444', }, { 'code': 'MED_REPORTS', 'name_en': 'Medical Reports', 'name_ar': 'التقارير الطبية', 'icon': 'file-text', 'color': '#8b5cf6', }, { 'code': 'ADMISSIONS_OFFICE', 'name_en': 'Admissions Office', 'name_ar': 'مكتب القبول', 'icon': 'briefcase', 'color': '#06b6d4', }, { 'code': 'CBAHI', 'name_en': 'CBAHI', 'name_ar': 'الهلال الأحمر', 'icon': 'shield', 'color': '#dc2626', }, { 'code': 'HR_PORTAL', 'name_en': 'HR Portal', 'name_ar': 'بوابة الموارد البشرية', 'icon': 'user-cog', 'color': '#059669', }, { 'code': 'GENERAL_ORIENTATION', 'name_en': 'General Orientation', 'name_ar': 'التوجيه العام', 'icon': 'info', 'color': '#0891b2', }, { 'code': 'SEHATY', 'name_en': 'Sehaty App (sick leaves)', 'name_ar': 'تطبيق صحتي (إجازات مرضية)', 'icon': 'smartphone', 'color': '#7c3aed', }, { 'code': 'MOH_CARE', 'name_en': 'MOH Care Portal', 'name_ar': 'بوابة رعاية وزارة الصحة', 'icon': 'heart-pulse', 'color': '#db2777', }, { 'code': 'CHI_CARE', 'name_en': 'CHI Care Portal', 'name_ar': 'بوابة رعاية مجلس الصحة', 'icon': 'activity', 'color': '#0284c7', }, ] def handle(self, *args, **options): from apps.accounts.models import AcknowledgementCategory self.stdout.write(self.style.WARNING('Seeding 14 default acknowledgement categories...')) created_count = 0 updated_count = 0 for category_data in self.DEFAULT_CATEGORIES: category, created = AcknowledgementCategory.objects.update_or_create( code=category_data['code'], defaults={ 'name_en': category_data['name_en'], 'name_ar': category_data['name_ar'], 'icon': category_data['icon'], 'color': category_data['color'], 'is_default': True, 'is_active': True, } ) if created: created_count += 1 self.stdout.write(self.style.SUCCESS(f'✓ Created: {category.name_en}')) else: updated_count += 1 self.stdout.write(self.style.WARNING(f'↻ Updated: {category.name_en}')) # Summary total = AcknowledgementCategory.objects.filter(is_default=True).count() self.stdout.write(self.style.SUCCESS('\n' + '='*50)) self.stdout.write(self.style.SUCCESS(f'✓ Seeding complete!')) self.stdout.write(self.style.SUCCESS(f' Created: {created_count}')) self.stdout.write(self.style.SUCCESS(f' Updated: {updated_count}')) self.stdout.write(self.style.SUCCESS(f' Total default categories: {total}')) self.stdout.write(self.style.SUCCESS('='*50))