<?php

return [

    'roles' => [
        'super_admin' => 'Super Administrator',
        'hospital_admin' => 'Hospital Administrator',
        'department_manager' => 'Department Manager',
        'emergency_physician' => 'Emergency Physician',
        'ed_nurse' => 'ED Nurse',
        'general_physician' => 'General Physician',
        'doctor' => 'Doctor (legacy)',
        'surgeon' => 'Surgeon',
        'theatre_nurse' => 'Theatre Nurse',
        'radiologist' => 'Radiologist',
        'radiographer' => 'Radiographer',
        'lab_technician' => 'Laboratory Technician',
        'lab_manager' => 'Laboratory Manager',
        'pathologist' => 'Pathologist',
        'blood_bank_officer' => 'Blood Bank Officer',
        'blood_bank_manager' => 'Blood Bank Manager',
        'pharmacist' => 'Pharmacist',
        'dentist' => 'Dentist',
        'psychiatrist' => 'Psychiatrist',
        'physiotherapist' => 'Physiotherapist',
        'midwife' => 'Midwife',
        'obstetrician' => 'Obstetrician',
        'gynecologist' => 'Gynecologist',
        'obgyn' => 'OB/GYN Consultant',
        'labour_ward_nurse' => 'Labour Ward Nurse',
        'pediatrician' => 'Pediatrician',
        'oncologist' => 'Oncologist',
        'cardiologist' => 'Cardiologist',
        'ent_specialist' => 'ENT Specialist',
        'dermatologist' => 'Dermatologist',
        'ophthalmologist' => 'Ophthalmologist',
        'orthopedist' => 'Orthopedist',
        'podiatrist' => 'Podiatrist',
        'fertility_specialist' => 'Fertility Specialist',
        'embryologist' => 'Embryologist',
        'fertility_nurse' => 'Fertility Nurse',
        'dialysis_nurse' => 'Dialysis Nurse',
        'ambulance_staff' => 'Ambulance Staff',
        'nurse' => 'Nurse (legacy)',
        'receptionist' => 'Receptionist',
        'billing_officer' => 'Billing Officer',
        'cashier' => 'Cashier',
        'accountant' => 'Accountant',
    ],

    'department_types' => [
        'general' => 'General',
        'outpatient' => 'Outpatient',
        'emergency' => 'Emergency',
        'laboratory' => 'Laboratory',
        'radiology' => 'Radiology',
        'pharmacy' => 'Pharmacy',
        'womens_health' => "Women's Health (OB/GYN)",
        'maternity' => 'Maternity (legacy)',
        'dental' => 'Dental',
        'ophthalmology' => 'Ophthalmology / Eye care',
        'physiotherapy' => 'Physiotherapy',
        'blood_bank' => 'Blood Bank',
        'cardiology' => 'Cardiology',
        'psychiatry' => 'Psychiatry',
        'pediatrics' => 'Pediatrics',
        'orthopedics' => 'Orthopedics',
        'ent' => 'ENT',
        'oncology' => 'Oncology',
        'renal' => 'Renal Care',
        'surgery' => 'Surgery',
        'vaccination' => 'Vaccination & Immunization',
        'pathology' => 'Pathology',
        'infusion' => 'Infusion Centre',
        'dermatology' => 'Dermatology',
        'podiatry' => 'Podiatry',
        'fertility' => 'Fertility & Reproductive Medicine',
        'child_welfare' => 'Child Welfare Clinic',
        'ambulance' => 'Ambulance',
        'nursing' => 'Nursing Services',
    ],

    /*
    | Care units live under departments. Kind drives beds (inpatient only)
    | and float-pool assignment behaviour.
    */
    'care_unit_kinds' => [
        'inpatient' => 'Inpatient unit',
        'outpatient' => 'Outpatient / clinic',
        'service' => 'Service unit',
        'float_pool' => 'Float pool',
    ],

    'bed_statuses' => [
        'available' => 'Available',
        'occupied' => 'Occupied',
        'reserved' => 'Reserved',
        'maintenance' => 'Maintenance',
        'closed' => 'Closed',
    ],

    /*
    | Employment assignment kind — not permanent nurse→ward ownership.
    | primary = home unit; temporary = float/coverage day(s); specialty = specialty-wide.
    */
    'staff_assignment_kinds' => [
        'primary' => 'Primary assignment',
        'temporary' => 'Temporary assignment',
        'specialty' => 'Specialty assignment',
    ],

    'staff_assignment_statuses' => [
        'active' => 'Active',
        'scheduled' => 'Scheduled',
        'ended' => 'Ended',
    ],

    /*
    | Post / grade on an assignment (distinct from Member.role RBAC).
    */
    'staff_assignment_roles' => [
        'staff_nurse' => 'Staff Nurse',
        'senior_staff_nurse' => 'Senior Staff Nurse',
        'clinic_nurse' => 'Clinic Nurse',
        'midwife' => 'Midwife',
        'ward_manager' => 'Ward Manager',
        'matron' => 'Matron',
        'theatre_nurse' => 'Theatre Nurse',
        'specialist_nurse' => 'Specialist Nurse',
        'float_nurse' => 'Float Nurse',
        'consultant' => 'Consultant',
        'resident' => 'Resident Doctor',
        'other' => 'Other',
    ],

    /*
    | Shift labels for nursing notes / handovers (not unit placement).
    | Duty scheduling uses care_shifts + roster entries.
    */
    'staff_shift_codes' => [
        'day' => 'Day shift',
        'evening' => 'Evening shift',
        'night' => 'Night shift',
        'rotating' => 'Rotating',
    ],

    'roster_entry_statuses' => [
        'scheduled' => 'Scheduled',
        'confirmed' => 'Confirmed',
        'completed' => 'Completed',
        'cancelled' => 'Cancelled',
    ],

    'mar_frequency_codes' => [
        'od' => 'Once daily (OD)',
        'bd' => 'Twice daily (BD)',
        'tds' => 'Three times daily (TDS)',
        'qds' => 'Four times daily (QDS)',
        'q4h' => 'Every 4 hours',
        'q6h' => 'Every 6 hours',
        'q8h' => 'Every 8 hours',
        'prn' => 'As needed (PRN)',
        'stat' => 'Immediate (STAT)',
        'custom' => 'Custom times',
    ],

    'mar_administration_statuses' => [
        'given' => 'Given',
        'held' => 'Held',
        'refused' => 'Refused',
        'missed' => 'Missed',
    ],

    'mar_slot_states' => [
        'due' => 'Due',
        'overdue' => 'Overdue',
        'given' => 'Given',
        'held' => 'Held',
        'refused' => 'Refused',
        'missed' => 'Missed',
        'prn_due' => 'PRN available',
        'prn_given' => 'PRN given today',
    ],

    'nursing_note_types' => [
        'progress' => 'Progress note',
        'assessment' => 'Nursing assessment',
        'intervention' => 'Intervention',
        'observation' => 'Observation',
        'other' => 'Other',
    ],

    'ward_handover_statuses' => [
        'draft' => 'Draft',
        'completed' => 'Completed',
    ],

    /*
    | Practitioner specialty options (Admin → Practitioners / Team invite).
    | Stored as free-text labels on care_practitioners.specialty.
    */
    'practitioner_specialties' => [
        'General Practice',
        'Internal Medicine',
        'Nursing',
        'Outpatient',
        'Emergency',
        'Laboratory',
        'Radiology',
        'Pharmacy',
        "Women's Health (OB/GYN)",
        'Maternity / Labour & Delivery',
        'Dentistry',
        'Ophthalmology / Eye care',
        'Physiotherapy',
        'Blood Bank',
        'Cardiology',
        'Psychiatry',
        'Pediatrics',
        'Orthopedics',
        'ENT',
        'Oncology',
        'Renal Care',
        'Surgery',
        'Vaccination & Immunization',
        'Pathology',
        'Infusion Centre',
        'Dermatology',
        'Podiatry',
        'Fertility',
        'Child Welfare Clinic',
        'Ambulance',
        'EMS / Paramedic',
    ],

    /*
    | Specialty practice modules (Settings → Modules).
    | Pro-gated via plans.*.features specialty_modules — expansions beyond core
    | outpatient/lab/pharmacy belong on paid plans, matching queue_integration.
    | See config/care_specialty_modules.php (default_on_paid_plans for Emergency / Blood Bank).
    */
    'specialty_modules' => require __DIR__.'/care_specialty_modules.php',

    /*
    | SVG path markup for specialty module icons (Heroicons-style outline).
    | Referenced by care.specialty_modules.*.icon identifiers.
    */
    'specialty_icons' => require __DIR__.'/care_specialty_icons.php',

    'audit_actions' => [
        'organization.created' => 'Organization created',
        'organization.updated' => 'Organization updated',
        'branch.created' => 'Branch created',
        'branch.updated' => 'Branch updated',
        'department.created' => 'Department created',
        'department.updated' => 'Department updated',
        'department.deleted' => 'Department deleted',
        'practitioner.created' => 'Practitioner added',
        'practitioner.updated' => 'Practitioner updated',
        'practitioner.deleted' => 'Practitioner removed',
        'member.created' => 'Member added',
        'member.updated' => 'Member updated',
        'member.deleted' => 'Member removed',
        'member.invited' => 'Member invited',
        'patient.created' => 'Patient registered',
        'patient.updated' => 'Patient record updated',
        'patient.deleted' => 'Patient record archived',
        'appointment.created' => 'Appointment booked',
        'appointment.walk_in' => 'Walk-in registered',
        'appointment.checked_in' => 'Patient checked in',
        'appointment.waiting' => 'Patient added to queue',
        'appointment.in_consultation' => 'Consultation started',
        'appointment.completed' => 'Appointment completed',
        'appointment.cancelled' => 'Appointment cancelled',
        'appointment.no_show' => 'Patient marked no-show',
        'appointment.meet_scheduled' => 'Video visit scheduled',
        'appointment.meet_cancelled' => 'Video visit cancelled',
        'visit.checked_in' => 'Visit opened',
        'visit.workflow_advanced' => 'Visit workflow advanced',
        'visit.completed' => 'Visit completed',
        'consultation.started' => 'Consultation started',
        'consultation.updated' => 'Consultation updated',
        'consultation.completed' => 'Consultation completed',
        'investigation.requested' => 'Investigation requested',
        'investigation.sample_collected' => 'Sample collected',
        'investigation.in_progress' => 'Investigation in progress',
        'investigation.results_entered' => 'Investigation results entered',
        'investigation.approved' => 'Investigation results approved',
        'investigation.delivered' => 'Investigation results delivered',
        'investigation.cancelled' => 'Investigation cancelled',
        'investigation_type.created' => 'Investigation type created',
        'investigation_type.updated' => 'Investigation type updated',
        'prescription.created' => 'Prescription created',
        'prescription.updated' => 'Prescription updated',
        'prescription.activated' => 'Prescription activated',
        'prescription.dispensed' => 'Prescription dispensed',
        'prescription.cancelled' => 'Prescription cancelled',
        'bill.created' => 'Bill created',
        'bill.updated' => 'Bill updated',
        'bill.line_item_added' => 'Bill line item added',
        'bill.voided' => 'Bill voided',
        'payment.recorded' => 'Payment recorded',
        'financial_obligation.cleared' => 'Financial obligation cleared',
        'payment.checkout_started' => 'Online payment checkout started',
        'integrations.gateway_connected' => 'Payment gateway connected',
        'integrations.gateway_disconnected' => 'Payment gateway disconnected',
        'drug.created' => 'Drug added',
        'drug.updated' => 'Drug updated',
        'drug.batch_received' => 'Drug stock received',
        'assessment.started' => 'Assessment started',
        'assessment.updated' => 'Assessment updated',
        'assessment.completed' => 'Assessment completed',
        'assessment.cancelled' => 'Assessment cancelled',
        'pathway.activated' => 'Clinical pathway activated',
        'pathway.deactivated' => 'Clinical pathway deactivated',
        'device.created' => 'Device registered',
        'device.updated' => 'Device updated',
        'device.deleted' => 'Device removed',
        'device.token_issued' => 'Device token issued',
        'device.token_revoked' => 'Device token revoked',
    ],

    'assessment_statuses' => [
        'draft' => 'Draft',
        'completed' => 'Completed',
        'cancelled' => 'Cancelled',
    ],

    'assessment_template_categories' => [
        'universal' => 'Universal intake',
        'disease' => 'Disease-specific',
        'outcome' => 'Outcome measures',
        'screening' => 'Screening',
    ],

    'assessment_answer_types' => [
        'text' => 'Text',
        'textarea' => 'Long text',
        'number' => 'Number',
        'integer' => 'Integer',
        'boolean' => 'Yes / No',
        'date' => 'Date',
        'datetime' => 'Date & time',
        'single_choice' => 'Single choice',
        'multi_choice' => 'Multiple choice',
        'scale' => 'Scale',
        'score_item' => 'Score item',
        'calculated' => 'Calculated',
    ],

    'patient_pathway_statuses' => [
        'active' => 'Active',
        'resolved' => 'Resolved',
        'inactive' => 'Inactive',
    ],

    'appointment_statuses' => [
        'scheduled' => 'Scheduled',
        'checked_in' => 'Checked in',
        'waiting' => 'Waiting',
        'in_consultation' => 'In consultation',
        'completed' => 'Completed',
        'cancelled' => 'Cancelled',
        'no_show' => 'No show',
    ],

    'visit_statuses' => [
        'open' => 'Open',
        'in_progress' => 'In progress',
        'completed' => 'Completed',
    ],

    'consultation_statuses' => [
        'draft' => 'Draft',
        'completed' => 'Completed',
    ],

    'investigation_categories' => [
        'blood' => 'Blood',
        'urine' => 'Urine',
        'stool' => 'Stool',
        'xray' => 'X-Ray',
        'ultrasound' => 'Ultrasound',
        'ct' => 'CT Scan',
        'mri' => 'MRI',
        'ecg' => 'ECG',
        'custom' => 'Custom',
    ],

    'investigation_statuses' => [
        'pending' => 'Pending',
        'sample_collected' => 'Sample collected',
        'in_progress' => 'In progress',
        'awaiting_review' => 'Awaiting review',
        'completed' => 'Completed',
        'delivered' => 'Delivered',
        'cancelled' => 'Cancelled',
    ],

    'prescription_statuses' => [
        'draft' => 'Draft',
        'active' => 'Active',
        'dispensed' => 'Dispensed',
        'cancelled' => 'Cancelled',
    ],

    'medication_routes' => [
        'oral' => 'Oral',
        'topical' => 'Topical',
        'injection' => 'Injection',
        'inhalation' => 'Inhalation',
        'sublingual' => 'Sublingual',
        'rectal' => 'Rectal',
        'other' => 'Other',
    ],

    'genders' => [
        'male' => 'Male',
        'female' => 'Female',
        'other' => 'Other',
    ],

    'allergy_severities' => [
        'mild' => 'Mild',
        'moderate' => 'Moderate',
        'severe' => 'Severe',
        'unknown' => 'Unknown',
    ],

    'document_types' => [
        'id_card' => 'ID card',
        'insurance_card' => 'Insurance card',
        'lab_report' => 'Lab report',
        'referral' => 'Referral letter',
        'specialty_emergency' => 'Emergency document',
        'specialty_blood_bank' => 'Blood bank document',
        'specialty_dentistry' => 'Dental document',
        'specialty_ophthalmology' => 'Eye care document',
        'specialty_physiotherapy' => 'Physiotherapy document',
        'specialty_maternity' => "Women's Health document",
        'specialty_womens_health' => "Women's Health document",
        'other' => 'Other',
    ],

    'patient_number' => [
        'prefix' => env('CARE_PATIENT_NUMBER_PREFIX', 'LC'),
    ],

    'invoice_number' => [
        'prefix' => env('CARE_INVOICE_PREFIX', 'INV'),
    ],

    'billing' => [
        'patient_card_fee_minor' => (int) env('CARE_PATIENT_CARD_FEE_MINOR', 2000),
        'consultation_fee_minor' => (int) env('CARE_CONSULTATION_FEE_MINOR', 5000),
        'follow_up_fee_minor' => (int) env('CARE_FOLLOW_UP_FEE_MINOR', 3000),
        'vitals_fee_minor' => (int) env('CARE_VITALS_FEE_MINOR', 1000),
        'minor_procedure_fee_minor' => (int) env('CARE_MINOR_PROCEDURE_FEE_MINOR', 5000),
        'home_visit_fee_minor' => (int) env('CARE_HOME_VISIT_FEE_MINOR', 15000),
        'currency' => env('CARE_CURRENCY', 'GHS'),
    ],

    'bill_statuses' => [
        'draft' => 'Draft',
        'open' => 'Open',
        'partial' => 'Partially paid',
        'paid' => 'Paid',
        'void' => 'Void',
    ],

    'bill_line_types' => [
        'consultation' => 'Consultation',
        'lab' => 'Laboratory',
        'imaging' => 'Imaging',
        'procedure' => 'Procedure',
        'pharmacy' => 'Pharmacy',
        'nursing' => 'Nursing',
        'misc' => 'Miscellaneous',
    ],

    'payment_methods' => [
        'cash' => 'Cash',
        'momo' => 'Mobile Money',
        'card' => 'Card',
        'gateway' => 'Online (gateway)',
        'other' => 'Other',
    ],

    'payment_gateways' => [
        'paystack' => 'Paystack',
        'flutterwave' => 'Flutterwave',
        'hubtel' => 'Hubtel',
    ],

    'report_types' => [
        'patients' => 'Patients',
        'appointments' => 'Appointments',
        'laboratory' => 'Laboratory',
        'finance' => 'Finance',
        'clinical' => 'Clinical trends',
        // KD-18: org-level multi-patient assessment analytics (Enterprise assessment_analytics)
        'assessments' => 'Assessment analytics',
    ],

    'plans' => [
        'free' => [
            'label' => 'Free',
            'price_minor' => 0,
            'max_branches' => 1,
            // Free: core patient records, appointments & consults, basic workflows only.
            // One branch is created during onboarding; multi-branch management is Pro.
            'features' => [],
        ],
        'pro' => [
            'label' => 'Pro',
            // Billed per active branch / month (unlimited branches).
            'price_minor_per_branch' => (int) env('CARE_PRO_PRICE_PER_BRANCH_MINOR', env('CARE_PRO_PRICE_MINOR', 249000)),
            'max_branches' => null,
            'features' => [
                'branches',
                'lab',
                'pharmacy',
                'billing',
                'queue_integration',
                'clinical_devices',
                'specialty_modules',
            ],
        ],
        'enterprise' => [
            'label' => 'Enterprise',
            // Billed per active branch / month (unlimited branches).
            // Differentiator: multi-dept custom workflows, priority support, analytics, AI.
            'price_minor_per_branch' => (int) env('CARE_ENTERPRISE_PRICE_PER_BRANCH_MINOR', env('CARE_ENTERPRISE_PRICE_MINOR', 499000)),
            'max_branches' => null,
            'features' => [
                'branches',
                'lab',
                'pharmacy',
                'billing',
                'queue_integration',
                'clinical_devices',
                'specialty_modules',
                // KD-18: org-level multi-patient assessment/outcome analytics
                'assessment_analytics',
            ],
        ],
    ],

    'device_types' => [
        'kiosk' => 'Queue kiosk',
        'display' => 'Queue display',
        'barcode_scanner' => 'Barcode scanner',
        'qr_scanner' => 'QR scanner',
        'badge_printer' => 'Badge / label printer',
        'thermometer' => 'Thermometer',
        'bp_monitor' => 'Blood pressure monitor',
        'pulse_ox' => 'Pulse oximeter',
        'weight_scale' => 'Weight scale',
        'lab_analyzer' => 'Lab analyzer',
        'agent' => 'Generic device agent',
        'other' => 'Other',
    ],

    /** Queue walk-up devices (not clinical agents). */
    'queue_device_types' => [
        'kiosk',
        'display',
    ],

    /** Types that need a local Care Device Agent (Pro+). Wedge scanners stay free. */
    'device_agent_types' => [
        'thermometer',
        'bp_monitor',
        'pulse_ox',
        'weight_scale',
        'lab_analyzer',
        'agent',
    ],

    'device_connection_modes' => [
        'browser_wedge' => 'Browser keyboard wedge',
        'agent' => 'Local device agent',
        'web_bluetooth' => 'Web Bluetooth (experimental)',
        'manual' => 'Manual / inventory only',
    ],

    'device_statuses' => [
        'active' => 'Active',
        'offline' => 'Offline',
        'disabled' => 'Disabled',
    ],

    'vital_sources' => [
        'manual' => 'Manual entry',
        'device' => 'Device',
        'import' => 'Import',
    ],

    'enterprise' => [
        // Feature tier (not branch-gated); kept for config compatibility.
        'min_branches' => (int) env('CARE_ENTERPRISE_MIN_BRANCHES', 1),
    ],

    'prepaid_months' => [6, 12, 24],

    'pro' => [
        'grace_days' => (int) env('CARE_PRO_GRACE_DAYS', 3),
        'period_days' => (int) env('CARE_PRO_PERIOD_DAYS', 30),
    ],

    'display_layouts' => [
        'standard' => 'Standard',
        'compact' => 'Compact',
    ],

    'announcement_templates' => [
        'en' => 'Ticket :ticket, please proceed to :destination.',
        'fr' => 'Ticket :ticket, veuillez vous rendre au :destination.',
        'tw' => 'Ticket :ticket, mesrɛ kɔ :destination.',
        'with_staff' => ':ticket, :staff, :destination.',
    ],

    'display_poll_ms' => (int) env('CARE_DISPLAY_POLL_MS', 1200),

    'upgrade_banner' => [
        'free' => [
            'title' => 'Unlock Care Pro or Enterprise',
            'description' => 'Pro from GHS 2490/branch/mo — lab, pharmacy, billing, and in-app service queues. Enterprise adds custom multi-dept workflows, analytics, priority support, and AI-assisted healthcare integration.',
            'route' => 'care.pro.index',
            'cta' => 'View plans',
        ],
        'pro' => [
            'title' => 'Upgrade to Care Enterprise',
            'description' => 'Enterprise from GHS 4990/branch/mo — custom multi-dept workflows, assessment analytics, priority support, and AI-assisted healthcare integration on top of your Pro modules.',
            'route' => 'care.pro.index',
            'cta' => 'View Enterprise',
        ],
    ],

];
