<?php
$data = is_array($movementData ?? null) ? $movementData : ['site'=>'','version'=>[],'rows'=>[],'total'=>0,'page'=>1,'per_page'=>50];
$version = is_array($data['version'] ?? null) ? $data['version'] : [];
$rows = is_array($data['rows'] ?? null) ? $data['rows'] : [];
$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','خارج')];
$statusLabels = ['SOURCE_ONLY'=>$tr('Source preserved','محفوظ من المصدر'),'CLASSIFIED'=>$tr('Classified','مصنف'),'RETIRED'=>$tr('Retired','متقاعد')];
?>
<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('SOURCE MOVEMENT CONTRACT', 'عقد أنواع الحركات من المصدر')) ?></span>
            <h1><?= e($tr('Medication movement dictionary', 'قاموس أنواع حركات الأدوية')) ?></h1>
            <p><?= e($tr('A versioned snapshot of raw Movement type and Inventory effect values. Derived classifications never replace the source movement code.', 'نسخة موثقة بإصدار من قيم Movement type وInventory effect الخام. لا يستبدل أي تصنيف مشتق نوع الحركة الأصلي.')) ?></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 info semantic-boundary"><strong><?= e($tr('Page boundary', 'حدود الصفحة')) ?></strong><span><?= e($tr('Source movement codes are displayed exactly as captured. No derived label replaces Movement type or Inventory effect.', 'تُعرض أكواد الحركات كما التُقطت من المصدر. لا يستبدل أي وصف مشتق قيم Movement type أو Inventory effect.')) ?></span></div>

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

    <div class="dictionary-version-card">
        <div><span><?= e($tr('Hospital', 'المستشفى')) ?></span><strong><?= e((string)($data['site'] ?? '')) ?></strong></div>
        <div><span><?= e($tr('Active version', 'الإصدار الفعال')) ?></span><strong><?= e((string)($version['move_map_version_id'] ?? '—')) ?></strong></div>
        <div><span><?= e($tr('Source movement types', 'أنواع الحركات من المصدر')) ?></span><strong><?= number_format((int)($version['source_type_count'] ?? 0)) ?></strong></div>
        <div><span><?= e($tr('Captured at', 'تاريخ الالتقاط')) ?></span><strong><?= e((string)($version['captured_at'] ?? '—')) ?></strong></div>
        <div class="hash-field"><span><?= e($tr('Snapshot hash', 'بصمة السجلات الشهريةة')) ?></span><code><?= e((string)($version['map_hash'] ?? '—')) ?></code></div>
    </div>

    <form class="diar-command-filters" method="get" action="index.php">
        <input type="hidden" name="page" value="diar-movement-dictionary">
        <input type="hidden" name="lang" value="<?= e(current_lang()) ?>">
        <div class="field search-wide"><label><?= e($tr('Search movement', 'البحث في الحركات')) ?></label><input name="q" value="<?= e((string)($filters['q'] ?? '')) ?>" placeholder="<?= e($tr('Code or movement name', 'الكود أو اسم الحركة')) ?>"></div>
        <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('Raw 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="field"><label><?= e($tr('Mapping status', 'حالة أسلوب المعالجة')) ?></label><select name="mapping_status"><option value=""><?= e($tr('All statuses', 'كل الحالات')) ?></option><?php foreach ($statusLabels as $code=>$label): ?><option value="<?= e($code) ?>" <?= (string)($filters['mapping_status'] ?? '') === $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-movement-dictionary',['site'=>(string)($data['site'] ?? '')])) ?>"><?= e($tr('Reset', 'إعادة ضبط')) ?></a></div>
    </form>

    <section class="diar-command-section">
        <div class="section-heading"><div><h2><?= e($tr('Movement types', 'أنواع الحركات')) ?></h2><p><?= e($tr('The raw code and effect are the primary statistical dimensions.', 'يُعد نوع الحركة الخام وتأثيرها من الأبعاد الإحصائية الأساسية.')) ?></p></div><strong><?= number_format($total) ?></strong></div>
        <?php if ($rows === []): ?><div class="empty-state"><?= e($tr('No movement types match the selected filters.', 'لا توجد أنواع حركة تطابق الفلاتر المحددة.')) ?></div><?php else: ?>
        <div class="command-table-wrap"><table class="command-table movement-table"><thead><tr>
            <th><?= e($tr('Raw code', 'الكود الخام')) ?></th><th><?= e($tr('Movement name', 'اسم الحركة')) ?></th><th><?= e($tr('Raw effect', 'التأثير الخام')) ?></th><th><?= e($tr('Derived direction', 'الاتجاه المشتق')) ?></th><th><?= e($tr('Mapping status', 'حالة أسلوب المعالجة')) ?></th><th><?= e($tr('Source evidence', 'دليل المصدر')) ?></th>
        </tr></thead><tbody><?php foreach ($rows as $row): $effect=(string)($row['storetranseffect'] ?? ''); $mapping=(string)($row['mapping_status'] ?? 'SOURCE_ONLY'); ?>
            <tr>
                <td data-label="<?= e($tr('Raw code', 'الكود الخام')) ?>"><strong class="movement-code"><?= e((string)($row['storetranscode'] ?? '')) ?></strong><small><?= e($tr('Movement type', 'Movement type')) ?></small></td>
                <td data-label="<?= e($tr('Movement name', 'اسم الحركة')) ?>"><strong><?= e($isAr ? (string)($row['trans_type_ar'] ?? $row['trans_type_en'] ?? '—') : (string)($row['trans_type_en'] ?? $row['trans_type_ar'] ?? '—')) ?></strong><small><?= e($isAr ? (string)($row['trans_type_en'] ?? '') : (string)($row['trans_type_ar'] ?? '')) ?></small></td>
                <td data-label="<?= e($tr('Raw effect', 'التأثير الخام')) ?>"><span class="effect-badge effect-<?= e($effect) ?>"><?= e($effectLabels[$effect] ?? $effect) ?></span><small>Inventory effect = <?= e($effect) ?></small></td>
                <td data-label="<?= e($tr('Derived direction', 'الاتجاه المشتق')) ?>"><strong><?= e((string)($row['direction_code'] ?? '—')) ?></strong><small><?= e((string)($row['movement_group_code'] ?? '')) ?></small></td>
                <td data-label="<?= e($tr('Mapping status', 'حالة أسلوب المعالجة')) ?>"><span class="mapping-badge mapping-<?= e(strtolower($mapping)) ?>"><?= e($statusLabels[$mapping] ?? $mapping) ?></span></td>
                <td data-label="<?= e($tr('Source evidence', 'دليل المصدر')) ?>"><code class="compact-hash"><?= e((string)($row['source_row_hash'] ?? '—')) ?></code><small><?= e((string)($row['updated_at'] ?? '')) ?></small></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-movement-dictionary',$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-movement-dictionary',$q)) ?>"><?= e($tr('Next','التالي')) ?></a><?php endif;?></nav><?php endif; ?>
    </section>
</section>
