<?php
$data = is_array($runData ?? null) ? $runData : ['rows'=>[],'total'=>0,'page'=>1,'per_page'=>50];
$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; };
$statusLabels = [
    'PENDING'=>$tr('Pending','قيد الانتظار'),'RUNNING'=>$tr('Running','قيد التشغيل'),
    'PASS'=>$tr('Completed','مكتمل'),'FAILED'=>$tr('Failed','فشل'),'CANCELLED'=>$tr('Cancelled','ملغى'),
];
$typeLabels = [
    'NIGHTLY'=>$tr('Nightly','ليلي'),'MANUAL'=>$tr('Manual','يدوي'),'BACKFILL'=>$tr('Historical seed','تجهيز تاريخي'),
    'REPROCESS'=>$tr('Reprocess','إعادة معالجة'),'TEST'=>$tr('Test','اختبار'),
];
?>
<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('ENGINE OPERATIONS', 'تشغيل المحرك')) ?></span>
            <h1><?= e($tr('DIAR engine runs', 'حالة معالجة مخاطر الأدوية')) ?></h1>
            <p><?= e($tr('Read-only status of historical preparation, tests, reprocessing and future nightly runs in both hospitals.', 'حالة للقراءة فقط لعمليات التجهيز التاريخي والاختبارات وإعادة المعالجة والتشغيل الليلي المستقبلي في المستشفيين.')) ?></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('Read-only operational history. This page does not start, stop or retry Oracle jobs.', 'سجل تشغيلي للقراءة فقط. لا تبدأ هذه الصفحة وظائف Oracle أو توقفها أو تعيد تشغيلها.')) ?></span></div>

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

    <form class="diar-command-filters" method="get" action="index.php">
        <input type="hidden" name="page" value="diar-engine-runs">
        <input type="hidden" name="lang" value="<?= e(current_lang()) ?>">
        <div class="field search-wide"><label><?= e($tr('Search run or step', 'البحث برقم التشغيل أو الخطوة')) ?></label><input name="q" value="<?= e((string)($filters['q'] ?? '')) ?>" placeholder="<?= e($tr('Run ID, step or error code', 'رقم التشغيل أو الخطوة أو رمز الخطأ')) ?>"></div>
        <div class="field"><label><?= e($tr('Hospital', 'المستشفى')) ?></label><select name="site"><option value=""><?= e($tr('All allowed hospitals', 'كل المستشفيات المسموحة')) ?></option><?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('Status', 'الحالة')) ?></label><select name="status"><option value=""><?= e($tr('All statuses', 'كل الحالات')) ?></option><?php foreach ($statusLabels as $code=>$label): ?><option value="<?= e($code) ?>" <?= (string)($filters['status'] ?? '') === $code ? 'selected' : '' ?>><?= e($label) ?></option><?php endforeach; ?></select></div>
        <div class="field"><label><?= e($tr('Run type', 'نوع التشغيل')) ?></label><select name="run_type"><option value=""><?= e($tr('All types', 'كل الأنواع')) ?></option><?php foreach ($typeLabels as $code=>$label): ?><option value="<?= e($code) ?>" <?= (string)($filters['run_type'] ?? '') === $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-engine-runs')) ?>"><?= e($tr('Reset', 'إعادة ضبط')) ?></a></div>
    </form>

    <section class="diar-command-section">
        <div class="section-heading"><div><h2><?= e($tr('Run history', 'سجل التشغيلات')) ?></h2><p><?= e(sprintf($tr('%s run records match the current filters.', 'يوجد %s سجل تشغيل مطابق للفلاتر الحالية.'), number_format($total))) ?></p></div><strong><?= number_format($total) ?></strong></div>
        <?php if ($rows === []): ?>
            <div class="empty-state"><?= e($tr('No runs match the selected filters.', 'لا توجد تشغيلات تطابق الفلاتر المحددة.')) ?></div>
        <?php else: ?>
            <div class="command-table-wrap">
                <table class="command-table runs-table">
                    <thead><tr>
                        <th><?= e($tr('Hospital / run', 'المستشفى / التشغيل')) ?></th>
                        <th><?= e($tr('Type and period', 'النوع والفترة')) ?></th>
                        <th><?= e($tr('Status', 'الحالة')) ?></th>
                        <th><?= e($tr('Current step', 'الخطوة الحالية')) ?></th>
                        <th><?= e($tr('Timing', 'التوقيت')) ?></th>
                        <th><?= e($tr('Error', 'الخطأ')) ?></th>
                    </tr></thead>
                    <tbody><?php foreach ($rows as $row): $status=(string)($row['status_code'] ?? 'PENDING'); $type=(string)($row['run_type'] ?? ''); ?>
                        <tr>
                            <td data-label="<?= e($tr('Hospital / run', 'المستشفى / التشغيل')) ?>"><span class="hospital-code"><?= e((string)($row['hospital_code'] ?? '')) ?></span><strong>#<?= number_format((int)($row['stat_run_id'] ?? 0)) ?></strong><small><?= e((string)($row['source_db'] ?? '')) ?></small></td>
                            <td data-label="<?= e($tr('Type and period', 'النوع والفترة')) ?>"><strong><?= e($typeLabels[$type] ?? $type) ?></strong><span><?= e((string)($row['target_from_date'] ?? '')) ?> → <?= e((string)($row['target_to_date'] ?? '')) ?></span><small><?= e($tr('Baseline', 'المرجع')) ?>: <?= e((string)($row['baseline_from_date'] ?? '')) ?> → <?= e((string)($row['baseline_to_date'] ?? '')) ?></small></td>
                            <td data-label="<?= e($tr('Status', 'الحالة')) ?>"><span class="run-status status-<?= e(strtolower($status)) ?>"><?= e($statusLabels[$status] ?? $status) ?></span></td>
                            <td data-label="<?= e($tr('Current step', 'الخطوة الحالية')) ?>"><strong><?= e((string)($row['current_step'] ?? '—')) ?></strong><small><?= e((string)($row['requested_by'] ?? '')) ?></small></td>
                            <td data-label="<?= e($tr('Timing', 'التوقيت')) ?>"><span><?= e($tr('Started', 'بدأ')) ?>: <?= e((string)($row['started_at'] ?? '—')) ?></span><small><?= e($tr('Completed', 'انتهى')) ?>: <?= e((string)($row['completed_at'] ?? '—')) ?></small></td>
                            <td data-label="<?= e($tr('Error', 'الخطأ')) ?>"><?php if (!empty($row['error_code'])): ?><strong class="error-code"><?= e((string)$row['error_code']) ?></strong><small><?= e((string)($row['error_message'] ?? '')) ?></small><?php else: ?><span>—</span><?php endif; ?></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-engine-runs',$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-engine-runs',$q)) ?>"><?= e($tr('Next', 'التالي')) ?></a><?php endif; ?></nav>
        <?php endif; ?>
    </section>
</section>
