<?php
declare(strict_types=1);

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

require_once __DIR__ . '/../db.php';
require_once __DIR__ . '/../inc/auth.php';

$page_title   = 'تهيئة مستندات الشركة';
$layout_title = 'تهيئة مستندات الشركة';
$active_page  = 'company_docs_dashboard';
$active_menu  = 'hr';

require_once __DIR__ . '/../inc/layout.php';

if (empty($_SESSION['user_id'])) {
    header('Location: ../index.html');
    exit;
}

$pdo = db();
if (!$pdo instanceof PDO) {
    http_response_code(500);
    exit('DB not ready');
}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

function h($value): string
{
    return htmlspecialchars((string)($value ?? ''), ENT_QUOTES, 'UTF-8');
}

function table_exists(PDO $pdo, string $table): bool
{
    $sql = "
        SELECT COUNT(*)
        FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_SCHEMA = DATABASE()
          AND TABLE_NAME = :table
    ";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':table' => $table]);
    return (int)$stmt->fetchColumn() > 0;
}

function table_has_column(PDO $pdo, string $table, string $column): bool
{
    $sql = "
        SELECT COUNT(*)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_SCHEMA = DATABASE()
          AND TABLE_NAME = :table
          AND COLUMN_NAME = :column
    ";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([
        ':table'  => $table,
        ':column' => $column,
    ]);
    return (int)$stmt->fetchColumn() > 0;
}


$userRole = strtolower((string)($_SESSION['role'] ?? ''));
$isOwner  = in_array($userRole, ['owner', 'super_admin', 'superadmin'], true);

if (!$isOwner) {
    http_response_code(403);
    exit('غير مصرح لك بهذه الصفحة');
}

if (!table_exists($pdo, 'company_docs')) {
    http_response_code(500);
    exit('جدول company_docs غير موجود');
}

if (!table_has_column($pdo, 'company_docs', 'branch_id')) {
    http_response_code(500);
    exit('حقل branch_id غير موجود في جدول company_docs');
}

/*
|--------------------------------------------------------------------------
| الفروع الأساسية
|--------------------------------------------------------------------------
*/
$branches = [
    1 => 'أبوظبي',
    2 => 'دبي',
    3 => 'العين',
];

$results = [];
$createdCount = 0;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $checkStmt = $pdo->prepare("SELECT id FROM company_docs WHERE branch_id = :branch_id LIMIT 1");
    $insertStmt = $pdo->prepare("INSERT INTO company_docs (branch_id) VALUES (:branch_id)");

    foreach ($branches as $branchId => $branchName) {
        $checkStmt->execute([':branch_id' => $branchId]);
        $exists = $checkStmt->fetch();

        if ($exists) {
            $results[] = 'الفرع ' . $branchName . ' موجود مسبقًا.';
            continue;
        }

        $insertStmt->execute([':branch_id' => $branchId]);
        $createdCount++;
        $results[] = 'تم إنشاء سجل مستندات الشركة لفرع ' . $branchName . ' بنجاح.';
    }
}

$listStmt = $pdo->query("
    SELECT id, branch_id
    FROM company_docs
    ORDER BY branch_id ASC, id ASC
");
$currentRows = $listStmt->fetchAll();

if (function_exists('layout_start')) {
    layout_start();
} elseif (function_exists('render_layout_start')) {
    render_layout_start();
} elseif (function_exists('layout_header')) {
    layout_header();
}
?>

<div class="seed-page">
    <div class="seed-shell">

        <div class="seed-topbar">
            <div>
                <h1>تهيئة مستندات الشركة</h1>
                <p>إنشاء السجلات الناقصة للفروع داخل جدول مستندات الشركة</p>
            </div>

            <div class="seed-actions">
                <a class="action-btn light" href="company_docs_dashboard.php">العودة إلى لوحة مستندات الشركة</a>
            </div>
        </div>

        <div class="seed-card">
            <div class="section-head">
                <h2>الفروع الأساسية</h2>
                <p>سيتم التأكد من وجود سجل لكل فرع: أبوظبي، دبي، العين</p>
            </div>

            <form method="post">
                <button type="submit" class="action-btn primary">إنشاء السجلات الناقصة</button>
            </form>
        </div>

        <?php if ($results): ?>
            <div class="seed-card">
                <div class="section-head">
                    <h2>النتيجة</h2>
                    <p>عدد السجلات الجديدة: <?= (int)$createdCount ?></p>
                </div>

                <div class="result-box">
                    <?php foreach ($results as $line): ?>
                        <div class="result-line"><?= h($line) ?></div>
                    <?php endforeach; ?>
                </div>
            </div>
        <?php endif; ?>

        <div class="seed-card">
            <div class="section-head">
                <h2>السجلات الحالية</h2>
                <p>عرض السجلات الموجودة حاليًا داخل جدول company_docs</p>
            </div>

            <div class="table-wrap">
                <table class="seed-table">
                    <thead>
                        <tr>
                            <th>رقم السجل</th>
                            <th>رقم الفرع</th>
                            <th>اسم الفرع</th>
                        </tr>
                    </thead>
                    <tbody>
                    <?php if (!$currentRows): ?>
                        <tr>
                            <td colspan="3">
                                <div class="empty-state">لا توجد سجلات حالياً</div>
                            </td>
                        </tr>
                    <?php else: ?>
                        <?php foreach ($currentRows as $row): ?>
                            <tr>
                                <td><?= (int)$row['id'] ?></td>
                                <td><?= (int)$row['branch_id'] ?></td>
                                <td><?= h(branch_name_ar((int)$row['branch_id'])) ?></td>
                            </tr>
                        <?php endforeach; ?>
                    <?php endif; ?>
                    </tbody>
                </table>
            </div>
        </div>

    </div>
</div>

<style>
.seed-page{direction:rtl;padding:20px}
.seed-shell{display:flex;flex-direction:column;gap:16px}
.seed-topbar{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  background:linear-gradient(135deg,#00424f,#006a7a);color:#fff;border-radius:20px;padding:20px 22px;
  box-shadow:0 16px 34px rgba(0,0,0,.12)
}
.seed-topbar h1{margin:0 0 6px;font-size:25px}
.seed-topbar p{margin:0;font-size:14px;opacity:.92}
.seed-actions{display:flex;gap:10px;flex-wrap:wrap}
.seed-card{
  background:#fff;border:1px solid #e6eef0;border-radius:20px;padding:18px;
  box-shadow:0 10px 24px rgba(15,34,38,.05)
}
.section-head{margin-bottom:14px}
.section-head h2{margin:0 0 4px;font-size:18px;color:#102328}
.section-head p{margin:0;font-size:13px;color:#74878d}
.action-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:14px;
  text-decoration:none;border:none;cursor:pointer;font-size:14px;font-family:inherit;transition:.18s ease
}
.action-btn.primary{background:#d4af37;color:#13262b;font-weight:700}
.action-btn.light{background:#fff;color:#00424f;border:1px solid rgba(0,66,79,.14)}
.result-box{
  border:1px solid #e6eef0;border-radius:16px;background:#fbfdfe;padding:14px
}
.result-line{
  padding:10px 0;border-bottom:1px solid #eef3f5;color:#102328
}
.result-line:last-child{border-bottom:0}
.table-wrap{overflow:auto}
.seed-table{
  width:100%;min-width:680px;border-collapse:separate;border-spacing:0
}
.seed-table thead th{
  background:#f7fbfc;color:#50646b;font-size:13px;font-weight:800;text-align:right;padding:14px 12px;
  border-bottom:1px solid #e3ecef;white-space:nowrap
}
.seed-table tbody td{
  background:#fff;padding:14px 12px;border-bottom:1px solid #edf3f5;vertical-align:middle;white-space:nowrap
}
.empty-state{text-align:center;padding:24px;color:#74878d}
@media (max-width:860px){
  .seed-page{padding:14px}
  .seed-topbar{flex-direction:column}
}
</style>

<?php
if (function_exists('layout_end')) {
    layout_end();
} elseif (function_exists('render_layout_end')) {
    render_layout_end();
} elseif (function_exists('layout_footer')) {
    layout_footer();
}
?>