<?php
/** @var array<string,mixed> $report */
/** @var array<string,mixed> $hospital */
$summary = is_array($report['summary'] ?? null) ? $report['summary'] : [];
$patients = is_array($report['patients'] ?? null) ? $report['patients'] : [];
$units = is_array($report['units'] ?? null) ? $report['units'] : [];
$companies = is_array($report['companies'] ?? null) ? $report['companies'] : [];
$isAr = current_lang() === 'ar';
$tr = static fn(string $en, string $ar): string => $isAr ? $ar : $en;

$maxUnitRevenue = 0.0;
foreach ($units as $unit) {
    $maxUnitRevenue = max($maxUnitRevenue, (float)($unit['daily_revenue'] ?? 0));
}

$totalRevenue = (float)($summary['daily_revenue'] ?? 0);
$hasLoadError = (string)($errorMessage ?? '') !== '';
$topCompanies = array_slice($companies, 0, 5);
$topUnits = array_slice($units, 0, 7);
$initialPatientLimit = 5;
$patientPreviewCount = min(count($patients), $initialPatientLimit);
$exportDate = date('Y-m-d');
$excelFilename = strtoupper((string)$hospitalCode) . '_Daily_Revenue_' . $exportDate . '.xlsx';
$powerBiFilename = strtoupper((string)$hospitalCode) . '_Daily_Revenue_PowerBI_DataPack_' . $exportDate . '.zip';
$powerPointFilename = strtoupper((string)$hospitalCode) . '_Daily_Revenue_Brief_' . $exportDate . '.pptx';
$powerBiReportAvailable = is_file(base_path('resources/powerbi/NJCH_Daily_Revenue.pbix'));
$generatedAt = (string)($summary['generated_at'] ?? date('Y-m-d H:i:s'));
$branchName = (string)($hospital['name'] ?? strtoupper((string)$hospitalCode));
$automaticPct = (float)($summary['automatic_pct'] ?? 0);
$reviewCount = (int)($summary['review_count'] ?? 0);
$patientCount = (int)($summary['patient_count'] ?? 0);
$averageRevenue = (float)($summary['average_revenue'] ?? 0);
$topPayerName = (string)($topCompanies[0]['financial_class'] ?? '');
$topPayerRevenue = (float)($topCompanies[0]['daily_revenue'] ?? 0);
$topPayerShare = $totalRevenue > 0 ? ($topPayerRevenue / $totalRevenue) * 100 : 0.0;

$payerPalette = ['#5b21b6', '#2563eb', '#0f766e', '#f59e0b', '#db2777', '#64748b'];
$payerStops = [];
$cursor = 0.0;
foreach ($topCompanies as $idx => $company) {
    $value = (float)($company['daily_revenue'] ?? 0);
    $share = $totalRevenue > 0 ? max(0, min(100, ($value / $totalRevenue) * 100)) : 0;
    $start = $cursor;
    $cursor += $share;
    $color = $payerPalette[$idx % count($payerPalette)];
    $payerStops[] = $color . ' ' . number_format($start, 2, '.', '') . '% ' . number_format($cursor, 2, '.', '') . '%';
}
if ($cursor < 100) {
    $payerStops[] = '#e5e7eb ' . number_format($cursor, 2, '.', '') . '% 100%';
}
$donutStyle = 'background:conic-gradient(' . implode(',', $payerStops) . ');';
?>

<section class="idr-page" data-idr-root data-initial-limit="<?= e((string)$initialPatientLimit) ?>">
    <section class="idr-v11-hero" aria-label="<?= e($tr('Daily inpatient revenue summary', 'لقطة الإيراد اليومي للمرضى المنومين')) ?>">
        <div class="idr-v11-hero-copy">
            <span class="idr-v11-overline"><?= e($tr('Current inpatient revenue', 'إيراد المرضى المنومين الحالي')) ?></span>
            <h2><?= e($tr('Active inpatient revenue snapshot', 'لقطة الإيراد اليومي للمرضى المنومين')) ?></h2>
            <p><?= e($tr(
                'Current census, daily revenue, payer mix and care-area performance in one view.',
                'التعداد الحالي، الإيراد اليومي، توزيع جهات الدفع وأداء الوحدات في عرض واحد.'
            )) ?></p>
            <div class="idr-v11-context">
                <span><b><?= e($tr('Branch', 'الفرع')) ?></b><strong><?= e($branchName) ?></strong></span>
                <span><b><?= e($tr('Snapshot', 'وقت اللقطة')) ?></b><strong><?= e($generatedAt) ?></strong></span>
            </div>
        </div>
        <div class="idr-v11-export-card">
            <span><?= e($tr('Exports', 'التصدير')) ?></span>
            <strong><?= e($tr('Daily revenue files', 'ملفات الإيراد اليومي')) ?></strong>
            <div class="idr-v11-export-actions">
                <a class="idr-v11-btn" href="<?= e(url_to('inpatient-daily-revenue-export')) ?>"><?= e($tr('Excel', 'Excel')) ?></a>
                <a class="idr-v11-btn secondary" href="<?= e(url_to('inpatient-daily-revenue-powerbi-export')) ?>"><?= e($powerBiReportAvailable ? $tr('Power BI', 'Power BI') : $tr('Data Pack', 'حزمة بيانات')) ?></a>
                <a class="idr-v11-btn secondary" href="<?= e(url_to('inpatient-daily-revenue-powerpoint-export')) ?>"><?= e($tr('PowerPoint', 'PowerPoint')) ?></a>
            </div>
            <small><?= e($tr('Excel workbook, Power BI data package, and PowerPoint briefing.', 'ملف Excel، حزمة بيانات Power BI، وعرض PowerPoint.')) ?></small>
        </div>
        <div class="idr-v11-hero-visual" aria-hidden="true">
            <i class="building"></i>
            <i class="shield"></i>
        </div>
    </section>

    <?php if ($hasLoadError): ?>
        <section class="surface-card idr-alert" role="alert">
            <strong><?= e($tr('Daily revenue is temporarily unavailable', 'الإيراد اليومي غير متاح مؤقتًا')) ?></strong>
            <p><?= e((string)$errorMessage) ?></p>
        </section>
    <?php endif; ?>

    <section class="idr-v11-kpis" aria-label="<?= e($tr('Daily inpatient revenue indicators', 'مؤشرات الإيراد اليومي للمرضى المنومين')) ?>">
        <article class="idr-v11-kpi is-teal">
            <span class="idr-v11-icon idr-icon-census">◎</span>
            <div>
                <p><?= e($tr('Patients in rooms', 'المرضى في الغرف')) ?></p>
                <strong><?= $hasLoadError ? 'N/A' : e((string)$patientCount) ?></strong>
                <small><?= e($tr('Current active census', 'التعداد النشط الحالي')) ?></small>
            </div>
        </article>
        <article class="idr-v11-kpi is-purple">
            <span class="idr-v11-icon idr-icon-revenue">SR</span>
            <div>
                <p><?= e($tr('Total daily revenue', 'إجمالي الإيراد اليومي')) ?></p>
                <strong><?= $hasLoadError ? 'N/A' : e(money_number($totalRevenue)) ?> <em>SR</em></strong>
                <small><?= e($tr('For current active census', 'للتعداد النشط الحالي')) ?></small>
            </div>
        </article>
        <article class="idr-v11-kpi is-blue">
            <span class="idr-v11-icon idr-icon-average">◇</span>
            <div>
                <p><?= e($tr('Average per patient', 'المتوسط لكل مريض')) ?></p>
                <strong><?= $hasLoadError ? 'N/A' : e(money_number($averageRevenue)) ?> <em>SR</em></strong>
                <small><?= e($tr('Daily revenue average', 'متوسط الإيراد اليومي')) ?></small>
            </div>
        </article>
        <article class="idr-v11-kpi is-green">
            <span class="idr-v11-icon idr-icon-share">%</span>
            <div>
                <p><?= e($tr('Largest payer share', 'حصة أكبر جهة دفع')) ?></p>
                <strong><?= $hasLoadError ? 'N/A' : e(number_format($topPayerShare, 1)) . '%' ?></strong>
                <small><?= e($topPayerName !== '' ? $topPayerName : $tr('No payer data available', 'لا تتوفر بيانات جهات دفع')) ?></small>
            </div>
        </article>
        <article class="idr-v11-kpi is-rose <?= $reviewCount > 0 ? 'needs-attention' : '' ?>">
            <span class="idr-v11-icon idr-icon-review">!</span>
            <div>
                <p><?= e($tr('Needs review', 'يحتاج مراجعة')) ?></p>
                <strong><?= $hasLoadError ? 'N/A' : e((string)$reviewCount) ?></strong>
                <small><?= e($tr('Missing or unusual shares', 'حصص مفقودة أو غير معتادة')) ?></small>
            </div>
        </article>
    </section>

    <section class="idr-v11-insight-grid">
        <article class="idr-v11-card idr-v11-payer-card">
            <div class="idr-v11-section-head">
                <span><?= e($tr('Payer concentration', 'تركيز جهات الدفع')) ?></span>
                <h3><?= e($tr('Top payers by daily revenue contribution', 'أعلى جهات الدفع حسب مساهمة الإيراد اليومي')) ?></h3>
            </div>
            <div class="idr-v11-payer-body">
                <div class="idr-v11-donut" style="<?= e($donutStyle) ?>">
                    <div>
                        <strong><?= e($tr('Revenue split', 'توزيع الإيراد')) ?></strong>
                        <span><?= e($tr('Top payers', 'أعلى الجهات')) ?></span>
                    </div>
                </div>
                <div class="idr-v11-payer-list">
                    <?php foreach ($topCompanies as $idx => $company): ?>
                        <?php
                            $value = (float)($company['daily_revenue'] ?? 0);
                            $pct = $totalRevenue > 0 ? min(100, ($value / $totalRevenue) * 100) : 0;
                            $color = $payerPalette[$idx % count($payerPalette)];
                        ?>
                        <div class="idr-v11-payer-item">
                            <i style="background:<?= e($color) ?>"></i>
                            <span><?= e((string)($company['financial_class'] ?? '')) ?></span>
                            <strong><?= e(money_number($value)) ?> SR</strong>
                            <em><?= e(number_format($pct, 1)) ?>%</em>
                        </div>
                    <?php endforeach; ?>
                    <?php if ($topCompanies === []): ?>
                        <p class="idr-empty-copy"><?= e($tr('No payer data is available for this snapshot.', 'لا تتوفر بيانات جهات دفع لهذه اللقطة.')) ?></p>
                    <?php endif; ?>
                </div>
            </div>
        </article>

        <article class="idr-v11-card idr-v11-care-card">
            <div class="idr-v11-section-head idr-v11-split-head">
                <div>
                    <span><?= e($tr('Revenue by care area', 'الإيراد حسب منطقة الرعاية')) ?></span>
                    <h3><?= e($tr('Daily revenue and occupancy by unit', 'الإيراد اليومي والإشغال حسب الوحدة')) ?></h3>
                </div>
                <b><?= e($tr('Sorted by daily revenue', 'مرتب حسب الإيراد اليومي')) ?></b>
            </div>
            <div class="idr-v11-care-list">
                <?php foreach ($topUnits as $idx => $unit): ?>
                    <?php
                        $unitRevenue = (float)($unit['daily_revenue'] ?? 0);
                        $width = $maxUnitRevenue > 0 ? max(2, ($unitRevenue / $maxUnitRevenue) * 100) : 0;
                        $beds = (int)($unit['beds'] ?? 0);
                        $count = (int)($unit['patients'] ?? 0);
                        $occupancy = $beds > 0 ? ($count / $beds) * 100 : 0;
                        $color = $payerPalette[$idx % count($payerPalette)];
                    ?>
                    <div class="idr-v11-care-row">
                        <div>
                            <strong><?= e((string)($unit['unit_name'] ?? '')) ?></strong>
                            <span><?= e((string)$count) ?>/<?= e((string)$beds) ?> <?= e($tr('beds occupied', 'أسرة مشغولة')) ?> · <?= e(number_format($occupancy, 1)) ?>%</span>
                        </div>
                        <div class="idr-v11-care-track"><i style="width:<?= e(number_format($width, 2, '.', '')) ?>%;background:<?= e($color) ?>"></i></div>
                        <strong><?= e(money_number($unitRevenue)) ?> SR</strong>
                    </div>
                <?php endforeach; ?>
                <?php if ($topUnits === []): ?>
                    <p class="idr-empty-copy"><?= e($tr('No unit data is available for this snapshot.', 'لا تتوفر بيانات وحدات لهذه اللقطة.')) ?></p>
                <?php endif; ?>
            </div>
        </article>
    </section>

    <section class="idr-v11-card idr-v11-table-card">
        <div class="idr-v11-table-head">
            <div>
                <span><?= e($tr('Patient-level detail', 'تفاصيل كل مريض')) ?></span>
                <h3><?= e($tr('Current inpatients and calculated daily revenue', 'المرضى المنومون حاليًا والإيراد اليومي المحسوب')) ?></h3>
            </div>
            <div class="idr-table-controls">
                <input type="search" placeholder="<?= e($tr('Search patient, room or payer', 'بحث بالمريض أو الغرفة أو جهة الدفع')) ?>" data-idr-search>
                <select data-idr-status>
                    <option value="all"><?= e($tr('All statuses', 'كل الحالات')) ?></option>
                    <option value="calculated"><?= e($tr('Calculated', 'محسوب')) ?></option>
                    <option value="review"><?= e($tr('Needs review', 'يحتاج مراجعة')) ?></option>
                </select>
            </div>
        </div>
        <div class="idr-table-wrap">
            <table class="idr-table">
                <thead>
                    <tr>
                        <th><?= e($tr('Patient', 'المريض')) ?></th>
                        <th><?= e($tr('Location', 'الموقع')) ?></th>
                        <th><?= e($tr('Financial class', 'الفئة المالية')) ?></th>
                        <th><?= e($tr('LOS', 'مدة الإقامة')) ?></th>
                        <th><?= e($tr('Total LOS', 'إجمالي مدة الإقامة')) ?></th>
                        <th><?= e($tr('Accumulated share', 'الحصة المتراكمة')) ?></th>
                        <th><?= e($tr('Daily revenue', 'الإيراد اليومي')) ?></th>
                        <th><?= e($tr('Status', 'الحالة')) ?></th>
                    </tr>
                </thead>
                <tbody data-idr-table-body>
                    <?php foreach ($patients as $patient): ?>
                        <?php
                            $needsReview = !empty($patient['needs_review']);
                            $shareValue = !empty($patient['is_cash_payer'])
                                ? (float)($patient['patient_share_total'] ?? 0)
                                : (float)($patient['company_share_total'] ?? 0);
                            $searchText = strtolower(trim(implode(' ', [
                                (string)($patient['patient_name'] ?? ''),
                                (string)($patient['patientid'] ?? ''),
                                (string)($patient['room'] ?? ''),
                                (string)($patient['bed'] ?? ''),
                                (string)($patient['financial_class'] ?? ''),
                                (string)($patient['unit_name'] ?? ''),
                            ])));
                        ?>
                        <tr data-idr-row data-status="<?= $needsReview ? 'review' : 'calculated' ?>" data-search="<?= e($searchText) ?>">
                            <td>
                                <strong><?= e((string)($patient['patient_name'] ?? '')) ?></strong>
                                <small>#<?= e((string)($patient['patientid'] ?? '')) ?> · <?= e((string)($patient['attending_doctor'] ?? '')) ?></small>
                            </td>
                            <td>
                                <strong><?= e((string)($patient['room'] ?? '')) ?> / <?= e((string)($patient['bed'] ?? '')) ?></strong>
                                <small><?= e((string)($patient['unit_name'] ?? '')) ?></small>
                            </td>
                            <td>
                                <strong><?= e((string)($patient['financlassid'] ?? '')) ?></strong>
                                <small><?= e((string)($patient['financial_class'] ?? '')) ?></small>
                            </td>
                            <td><strong><?= e((string)($patient['los'] ?? 0)) ?></strong></td>
                            <td><strong><?= e((string)($patient['total_los'] ?? 0)) ?></strong></td>
                            <td><strong><?= e(money_number($shareValue)) ?> SR</strong></td>
                            <td class="idr-revenue-cell"><strong><?= e(money_number((float)($patient['daily_revenue'] ?? 0))) ?> SR</strong></td>
                            <td>
                                <span class="idr-status <?= $needsReview ? 'review' : 'ok' ?>">
                                    <?= e($needsReview ? $tr('Needs review', 'يحتاج مراجعة') : $tr('Calculated', 'محسوب')) ?>
                                </span>
                                <?php if ($needsReview && (string)($patient['review_reason'] ?? '') !== ''): ?>
                                    <small><?= e($tr((string)$patient['review_reason'], 'لم يتم العثور على حصة متراكمة صالحة للزيارة النشطة.')) ?></small>
                                <?php endif; ?>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
        <div class="idr-table-footer">
            <span><b data-idr-visible-count><?= e((string)$patientPreviewCount) ?></b> <?= e($tr('of', 'من')) ?> <b data-idr-total-count><?= e((string)count($patients)) ?></b> <?= e($tr('patients shown', 'مريض معروض')) ?></span>
            <?php if (count($patients) > $initialPatientLimit): ?>
                <button type="button" class="idr-v11-link-btn" data-idr-show-all><?= e($tr('View all patients', 'عرض جميع المرضى')) ?></button>
            <?php endif; ?>
        </div>
    </section>
</section>
