<?php
require_once __DIR__ . '/../includes/functions.php';
require_role('admin');

$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verify_csrf();
    $full_name = trim($_POST['full_name'] ?? '');
    $username = trim($_POST['username'] ?? '');
    $personnel_code = trim($_POST['personnel_code'] ?? '');
    $email = trim($_POST['email'] ?? '');
    $hire_date_j = trim($_POST['hire_date'] ?? '');
    $password = $_POST['password'] ?? '';
    $role = $_POST['role'] === 'admin' ? 'admin' : 'employee';
    $pre_test_required = isset($_POST['pre_employment_test_required']) ? 1 : 0;
    $pre_test_date_j = trim($_POST['pre_employment_test_date'] ?? '');

    $hire_date = null;
    if ($hire_date_j !== '') {
        $g = parse_jalali_date($hire_date_j);
        if ($g) {
            $hire_date = sprintf('%04d-%02d-%02d', $g[0], $g[1], $g[2]);
        }
    }
    $pre_test_date = null;
    if ($pre_test_required && $pre_test_date_j !== '') {
        $g2 = parse_jalali_date($pre_test_date_j);
        if ($g2) {
            $pre_test_date = sprintf('%04d-%02d-%02d', $g2[0], $g2[1], $g2[2]);
        }
    }

    if ($full_name === '' || $username === '' || strlen($password) < 6) {
        $error = 'نام، نام کاربری و رمز عبور (حداقل ۶ کاراکتر) الزامی است.';
    } else {
        try {
            $hash = password_hash($password, PASSWORD_DEFAULT);
            $stmt = $pdo->prepare("INSERT INTO users (username, password, full_name, personnel_code, email, hire_date, role, pre_employment_test_required, pre_employment_test_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
            $stmt->execute([$username, $hash, $full_name, $personnel_code ?: null, $email ?: null, $hire_date ?: null, $role, $pre_test_required, $pre_test_date]);
            $_SESSION['flash_success'] = 'کاربر با موفقیت ساخته شد.';
            header('Location: ' . base_url('admin/users.php'));
            exit;
        } catch (Exception $e) {
            $error = 'خطا: نام کاربری تکراری است یا مشکلی رخ داده.';
        }
    }
}

$page_title = 'افزودن کاربر جدید';
include __DIR__ . '/../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
  <h4 class="mb-0">افزودن کاربر جدید</h4>
  <a href="users.php" class="btn btn-outline-secondary btn-sm">بازگشت به لیست کاربران</a>
</div>

<?php if ($error): ?><div class="alert alert-danger"><?= htmlspecialchars($error) ?></div><?php endif; ?>

<div class="card p-4">
  <form method="post" novalidate>
    <?= csrf_field() ?>
    <div class="row g-3">
      <div class="col-md-4">
        <label class="form-label">نام و نام خانوادگی *</label>
        <input type="text" name="full_name" class="form-control" required>
      </div>
      <div class="col-md-4">
        <label class="form-label">نام کاربری *</label>
        <input type="text" name="username" class="form-control" required>
      </div>
      <div class="col-md-4">
        <label class="form-label">رمز عبور *</label>
        <input type="password" name="password" class="form-control" required minlength="6">
      </div>
      <div class="col-md-4">
        <label class="form-label">کد پرسنلی (اختیاری)</label>
        <input type="text" name="personnel_code" class="form-control">
      </div>
      <div class="col-md-4">
        <label class="form-label">ایمیل (اختیاری)</label>
        <input type="email" name="email" class="form-control">
      </div>
      <div class="col-md-4">
        <label class="form-label">نقش</label>
        <select name="role" class="form-select">
          <option value="employee">کارمند</option>
          <option value="admin">مدیر/مالی</option>
        </select>
      </div>
      <div class="col-md-4">
        <label class="form-label">تاریخ استخدام (شمسی)</label>
        <input type="text" name="hire_date" class="form-control jalali-date-input" autocomplete="off" placeholder="1404/01/01" data-allow-future="1">
      </div>
      <div class="col-md-4 d-flex align-items-end">
        <div class="form-check">
          <input type="checkbox" name="pre_employment_test_required" value="1" class="form-check-input pre-test-toggle" id="preTestNew">
          <label class="form-check-label" for="preTestNew">مشمول آزمایش بدو استخدام است</label>
        </div>
      </div>
      <div class="col-md-4 pre-test-date-wrap" style="display:none;">
        <label class="form-label">تاریخ آزمایش بدو استخدام</label>
        <input type="text" name="pre_employment_test_date" class="form-control jalali-date-input" autocomplete="off" data-allow-future="1">
      </div>
    </div>
    <div class="form-text mt-2">تاریخ استخدام برای محاسبه تناسب سقف سال اول استفاده می‌شود. اگر کارمند مشمول آزمایش بدو استخدام است، تیک بزنید و تاریخ آزمایش را وارد کنید — سقف‌هایی مثل زایمان بر اساس همان تاریخ محاسبه خواهند شد نه تاریخ استخدام.</div>
    <button type="submit" class="btn btn-primary mt-3">افزودن کاربر</button>
  </form>
</div>

<script>
document.addEventListener('DOMContentLoaded', function () {
    document.querySelectorAll('.pre-test-toggle').forEach(function (cb) {
        var wrap = cb.closest('.row').querySelector('.pre-test-date-wrap');
        if (!wrap) return;
        cb.addEventListener('change', function () {
            wrap.style.display = cb.checked ? '' : 'none';
        });
    });
});
</script>
<?php include __DIR__ . '/../includes/footer.php'; ?>
