<?php
$data = is_array($factData ?? null) ? $factData : ['site'=>'','rows'=>[],'summary'=>[],'total'=>0,'page'=>1,'per_page'=>50,'options'=>[]];
$rows = is_array($data['rows'] ?? null) ? $data['rows'] : [];
$summary = is_array($data['summary'] ?? null) ? $data['summary'] : [];
$options = is_array($data['options'] ?? null) ? $data['options'] : [];
$total = (int)($data['total'] ?? 0);
$page = max(1, (int)($data['page'] ?? 1));
$perPage = max(20, (int)($data['per_page'] ?? 50));
$totalPages = max(1, (int)ceil($total / $perPage));
$isAr = current_lang() === 'ar';
$tr = static function (string $en, string $ar) use ($isAr): string { return $isAr ? $ar : $en; };
$effectLabels = ['0'=>$tr('Neutral','محايد'),'1'=>$tr('Inbound','داخل'),'2'=>$tr('Outbound','خارج')];
?>
<section class="diar-command-page">
    <?php include __DIR__ . '/_tabs.php'; ?>
    <?php include __DIR__ . '/_context.php'; ?>
    <header class="diar-subpage-hero">
        <div>
            <span class="eyebrow"><?= e($tr('CONTROLLED DAILY AGGREGATES', 'التجميعات اليومية المحكومة')) ?></span>
            <h1><?= e($tr('Medication daily movement facts', 'حركات الأدوية اليومية')) ?></h1>
            <p><?= e($tr('A read-only explorer of DIAR daily facts. The query window is limited to 31 days to protect the ongoing historical preparation.', 'مستعرض للقراءة فقط لحقائق DIAR اليومية. تقتصر فترة الاستعلام على 31 يومًا لحماية عملية التجهيز التاريخي الجارية.')) ?></p>
        </div>
        <a class="hero-action" href="<?= e(url_to('diar-command-center')) ?>"><?= e($tr('Back to command center', 'العودة إلى مركز المتابعة')) ?></a>
    </header>

    <div class="diar-command-alert warning"><strong><?= e($tr('Data readiness notice', 'تنبيه جاهزية البيانات')) ?></strong><span><?= e($tr('Results can be incomplete until the initial 400-day preparation is finalized. No anomaly conclusion is shown on this page.', 'قد تكون النتائج غير مكتملة حتى انتهاء تجهيز 400 يوم. لا تعرض هذه الصفحة أي استنتاج عن الحركات غير المعتادة.')) ?></span></div>
    <div class="diar-command-alert info semantic-boundary"><strong><?= e($tr('Page boundary', 'حدود الصفحة')) ?></strong><span><?= e($tr('These are prepared medication movement aggregates, not anomaly conclusions. Recorded units and movement types remain separated.', 'هذه تجميعات مجهزة لحركات الأدوية وليست استنتاجات عن الحالات غير المعتادة. تظل الوحدات الخام وأنواع الحركات منفصلة.')) ?></span></div>

    <?php if (!empty($loadError)): ?><div class="diar-command-alert error"><?= e($loadError) ?></div><?php endif; ?>

    <form class="diar-fact-filters" method="get" action="index.php">
        <input type="hidden" name="page" value="diar-daily-facts"><input type="hidden" name="lang" value="<?= e(current_lang()) ?>">
        <div class="field"><label><?= e($tr('Hospital', 'المستشفى')) ?></label><select name="site"><?php foreach ($allowedSites as $site): ?><option value="<?= e($site) ?>" <?= (string)($filters['site'] ?? '') === $site ? 'selected' : '' ?>><?= e($site) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('From date', 'من تاريخ')) ?></label><input type="date" name="date_from" value="<?= e((string)($filters['date_from'] ?? '')) ?>"></div>
        <div class="field"><label><?= e($tr('To date', 'إلى تاريخ')) ?></label><input type="date" name="date_to" value="<?= e((string)($filters['date_to'] ?? '')) ?>"></div>
        <div class="field"><label><?= e($tr('Branch', 'الفرع')) ?></label><select name="branch"><option value=""><?= e($tr('All branches', 'كل الفروع')) ?></option><?php foreach (($options['branches'] ?? []) as $option): $v=(string)($option['value_code'] ?? ''); ?><option value="<?= e($v) ?>" <?= (string)($filters['branch'] ?? '') === $v ? 'selected' : '' ?>><?= e($v) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('Store', 'المخزن')) ?></label><select name="store"><option value=""><?= e($tr('All stores', 'كل المخازن')) ?></option><?php foreach (($options['stores'] ?? []) as $option): $v=(string)($option['value_code'] ?? ''); ?><option value="<?= e($v) ?>" <?= (string)($filters['store'] ?? '') === $v ? 'selected' : '' ?>><?= e($v) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('Medication code', 'كود الدواء')) ?></label><input inputmode="numeric" name="item" value="<?= e((string)($filters['item'] ?? '')) ?>" placeholder="<?= e($tr('Exact item code', 'كود الصنف بدقة')) ?>"></div>
        <div class="field"><label><?= e($tr('Recorded unit', 'الوحدة المسجلة')) ?></label><select name="unit"><option value=""><?= e($tr('All units', 'كل الوحدات')) ?></option><?php foreach (($options['units'] ?? []) as $option): $v=(string)($option['value_code'] ?? ''); ?><option value="<?= e($v) ?>" <?= (string)($filters['unit'] ?? '') === $v ? 'selected' : '' ?>><?= e($v) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('Movement code', 'نوع الحركة')) ?></label><select name="transcode"><option value=""><?= e($tr('All movement types', 'كل أنواع الحركات')) ?></option><?php foreach (($options['transcodes'] ?? []) as $option): $v=(string)($option['value_code'] ?? ''); ?><option value="<?= e($v) ?>" <?= (string)($filters['transcode'] ?? '') === $v ? 'selected' : '' ?>><?= e($v) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('Movement effect', 'أثر الحركة على المخزون')) ?></label><select name="effect"><option value=""><?= e($tr('All effects', 'كل التأثيرات')) ?></option><?php foreach ($effectLabels as $code=>$label): ?><option value="<?= e($code) ?>" <?= (string)($filters['effect'] ?? '') === $code ? 'selected' : '' ?>><?= e($label) ?></option><?php endforeach; ?></select></div>
        <div class="filter-actions"><button class="primary-button" type="submit"><?= e($tr('Apply filters', 'تطبيق الفلاتر')) ?></button><a class="secondary-button" href="<?= e(url_to('diar-daily-facts',['site'=>(string)($data['site'] ?? '')])) ?>"><?= e($tr('Reset to last 7 days', 'إعادة الضبط لآخر 7 أيام')) ?></a></div>
    </form>

    <div class="diar-command-kpis facts-kpis">
        <article><span><?= e($tr('Fact rows', 'صفوف الحقائق')) ?></span><strong><?= number_format((int)($summary['fact_rows'] ?? 0)) ?></strong><small><?= e($tr('Selected period and filters', 'الفترة والفلاتر المحددة')) ?></small></article>
        <article><span><?= e($tr('Movement lines', 'سطور الحركات')) ?></span><strong><?= number_format((int)($summary['movement_lines'] ?? 0)) ?></strong><small><?= e($tr('Source lines represented', 'سطور المصدر الممثلة')) ?></small></article>
        <article><span><?= e($tr('Transactions', 'المعاملات')) ?></span><strong><?= number_format((int)($summary['transaction_count'] ?? 0)) ?></strong><small><?= e($tr('Distinct transaction headers', 'رؤوس المعاملات المميزة')) ?></small></article>
        <article><span><?= e($tr('Absolute quantity', 'إجمالي الكمية المطلقة')) ?></span><strong><?= number_format((float)($summary['abs_raw_qty_sum'] ?? 0), 2) ?></strong><small><?= e($tr('Recorded units are not merged', 'لا يتم دمج الوحدات الخام')) ?></small></article>
    </div>

    <section class="diar-command-section">
        <div class="section-heading"><div><h2><?= e($tr('Daily fact records', 'سجلات ملخص الحركات اليومية')) ?></h2><p><?= e(sprintf($tr('%s records match the selected period.', 'يوجد %s سجل مطابق للفترة المحددة.'), number_format($total))) ?></p></div><strong><?= e((string)($data['site'] ?? '')) ?></strong></div>
        <?php if ($rows === []): ?><div class="empty-state"><?= e($tr('No daily facts match the selected filters. The selected period may not be prepared yet.', 'لا توجد حقائق يومية تطابق الفلاتر. قد لا تكون الفترة المحددة قد جُهزت بعد.')) ?></div><?php else: ?>
        <div class="command-table-wrap"><table class="command-table facts-table"><thead><tr>
            <th><?= e($tr('Date and scope', 'التاريخ والنطاق')) ?></th><th><?= e($tr('Medication / unit', 'الدواء / الوحدة')) ?></th><th><?= e($tr('Movement type', 'نوع الحركة')) ?></th><th><?= e($tr('Activity', 'النشاط')) ?></th><th><?= e($tr('Quantities', 'الكميات')) ?></th><th><?= e($tr('Time and integrity', 'الوقت وسلامة البيانات')) ?></th>
        </tr></thead><tbody><?php foreach ($rows as $row): $effect=(string)($row['storetranseffect'] ?? ''); ?>
            <tr>
                <td data-label="<?= e($tr('Date and scope', 'التاريخ والنطاق')) ?>"><strong><?= e((string)($row['calendar_day'] ?? '')) ?></strong><span><?= e($tr('Branch', 'فرع')) ?> <?= e((string)($row['branch_id'] ?? '')) ?> · <?= e($tr('Store', 'مخزن')) ?> <?= e((string)($row['store_code'] ?? '')) ?></span></td>
                <td data-label="<?= e($tr('Medication / unit', 'الدواء / الوحدة')) ?>"><strong><?= e($tr('Item', 'صنف')) ?> <?= e((string)($row['item_code'] ?? '')) ?></strong><span><?= e($tr('Recorded unit', 'الوحدة المسجلة')) ?> <?= e((string)($row['raw_unit_code'] ?? '')) ?></span></td>
                <td data-label="<?= e($tr('Movement type', 'نوع الحركة')) ?>"><strong><?= e((string)($row['storetranscode'] ?? '')) ?> — <?= e($isAr ? (string)($row['trans_type_ar'] ?? $row['trans_type_en'] ?? '') : (string)($row['trans_type_en'] ?? $row['trans_type_ar'] ?? '')) ?></strong><span class="effect-badge effect-<?= e($effect) ?>"><?= e($effectLabels[$effect] ?? $effect) ?></span></td>
                <td data-label="<?= e($tr('Activity', 'النشاط')) ?>"><strong><?= number_format((int)($row['movement_lines'] ?? 0)) ?> <?= e($tr('lines', 'سطرًا')) ?></strong><span><?= number_format((int)($row['transaction_count'] ?? 0)) ?> <?= e($tr('transactions', 'معاملة')) ?> · <?= number_format((int)($row['distinct_users'] ?? 0)) ?> <?= e($tr('users', 'مستخدمين')) ?></span></td>
                <td data-label="<?= e($tr('Quantities', 'الكميات')) ?>"><strong><?= e($tr('Net', 'الصافي')) ?>: <?= number_format((float)($row['raw_qty_sum'] ?? 0), 2) ?></strong><span><?= e($tr('Absolute', 'المطلق')) ?>: <?= number_format((float)($row['abs_raw_qty_sum'] ?? 0), 2) ?></span><small><?= e($tr('Largest line', 'أكبر سطر')) ?>: <?= number_format((float)($row['max_abs_line_qty'] ?? 0), 2) ?></small></td>
                <td data-label="<?= e($tr('Time and integrity', 'الوقت وسلامة البيانات')) ?>"><span><?= e((string)($row['first_trans_at'] ?? '—')) ?></span><span><?= e((string)($row['last_trans_at'] ?? '—')) ?></span><code class="compact-hash"><?= e((string)($row['source_line_hash'] ?? '—')) ?></code></td>
            </tr>
        <?php endforeach; ?></tbody></table></div><?php endif; ?>
        <?php if ($totalPages > 1): ?><nav class="pagination"><?php $base=$filters;$base['per_page']=$perPage;if($page>1):$q=$base;$q['p']=$page-1;?><a href="<?= e(url_to('diar-daily-facts',$q)) ?>"><?= e($tr('Previous','السابق')) ?></a><?php endif;?><span><?= e($tr('Page','صفحة')) ?> <?= number_format($page) ?> / <?= number_format($totalPages) ?></span><?php if($page<$totalPages):$q=$base;$q['p']=$page+1;?><a href="<?= e(url_to('diar-daily-facts',$q)) ?>"><?= e($tr('Next','التالي')) ?></a><?php endif;?></nav><?php endif; ?>
    </section>
</section>
