<?php
include 'db.php';
session_start();

$user_id = $_SESSION['user_id'];
$query = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $user_id);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

$employeeId = $_SESSION['user_id'];
$success = '';
$error = '';
$today = date('Y-m-d');

// Get today's attendance
$stmt = $conn->prepare("SELECT * FROM attendance WHERE employee_id = ? AND date = ?");
$stmt->bind_param("is", $employeeId, $today);
$stmt->execute();
$result = $stmt->get_result();
$record = $result->fetch_assoc();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    $now = $_POST['client_time'] ?? null; // ← Use client system time

    if (!$now) {
        $error = "Client time not provided.";
    } else {
        if ($action === 'clock_in') {
            if ($record) {
                $error = "You have already clocked in.";
            } else {
                $insert = $conn->prepare("INSERT INTO attendance (employee_id, date, login_time) VALUES (?, ?, ?)");
                $insert->bind_param("iss", $employeeId, $today, $now);
                $success = $insert->execute() ? "Clocked in at $now." : "Clock-in failed.";
            }
        }

        if ($action === 'clock_out') {
            if (!$record || $record['logout_time']) {
                $error = "You must clock in first or already clocked out.";
            } else {
                $login = strtotime($record['login_time']);
                $logout = strtotime($now);
                if ($logout <= $login) {
                    $error = "Logout time can't be before login time.";
                } else {
                    $hours = number_format(($logout - $login) / 3600, 2);
                    $update = $conn->prepare("UPDATE attendance SET logout_time = ?, total_hours = ? WHERE id = ?");
                    $update->bind_param("sdi", $now, $hours, $record['id']);
                    $success = $update->execute() ? "Clocked out at $now. Total: $hours hrs." : "Clock-out failed.";
                }
            }
        }
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>HR | Mark Attendance</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="js/hyper-config.js"></script>
  <link href="css/vendor.min.css" rel="stylesheet">
  <link href="css/app.min.css" rel="stylesheet" id="app-style">
  <link href="css/unicons.css" rel="stylesheet">
  <link href="css/remixicon.css" rel="stylesheet">
  <link href="css/materialdesignicons.min.css" rel="stylesheet">
  <link rel="shortcut icon" href="uploads/logo.jpeg">
</head>
<body>
<div class="wrapper">

<?php include 'hr-sidebar.php'; ?>
<?php include 'hr-nav.php'; ?>

<div class="content-page">
  <div class="content">
    <div class="container-fluid mt-4">
      <h4 class="mb-3">Mark Attendance - <?= date('F d, Y') ?></h4>

      <!-- ✅ Show user's system time -->
      <div class="mb-3">
        <h5>🕒 Your System Time: <span id="system-time">Loading...</span></h5>
      </div>

      <?php if ($success): ?>
        <div class="alert alert-success"><?= htmlspecialchars($success) ?></div>
      <?php elseif ($error): ?>
        <div class="alert alert-danger"><?= htmlspecialchars($error) ?></div>
      <?php endif; ?>

      <div class="row d-flex align-items-stretch">
        <!-- Clock In Card -->
        <div class="col-md-6">
          <div class="card shadow p-4 h-100">
            <h5 class="mb-3">⏰ punch In</h5>
            <p class="mb-2">Login Time: <strong><?= $record['login_time'] ?? 'Not Marked' ?></strong></p>
            <form method="POST" onsubmit="setClientTime(this)">
              <input type="hidden" name="action" value="clock_in">
              <input type="hidden" name="client_time" id="client_time_in">
              <button type="submit" class="btn btn-success" <?= $record ? 'disabled' : '' ?>>
                <i class="ri-login-circle-line"></i> sumbit punch In
              </button>
            </form>
          </div>
        </div>

        <!-- Clock Out Card -->
        <div class="col-md-6">
          <div class="card shadow p-4 h-100">
            <h5 class="mb-3">🔚 punch Out</h5>
            <p class="mb-2">Logout Time: <strong><?= $record['logout_time'] ?? 'Not Marked' ?></strong></p>
            <form method="POST" onsubmit="setClientTime(this)">
              <input type="hidden" name="action" value="clock_out">
              <input type="hidden" name="client_time" id="client_time_out">
              <button type="submit" class="btn btn-danger"
                <?= !$record || $record['logout_time'] ? 'disabled' : '' ?>>
                <i class="ri-logout-circle-line"></i> submit punch Out
              </button>
            </form>
          </div>
        </div>
      </div>

      <!-- Summary -->
      <?php if ($record && $record['total_hours']): ?>
        <div class="alert alert-info mt-4">
          <strong>Total Hours:</strong> <?= $record['total_hours'] ?> hrs
        </div>
      <?php endif; ?>
    </div>
  </div>
</div>
</div>
<?php include('includes/theme.php') ?>

<script src="js/vendor.min.js"></script>
<script src="js/app.js"></script>

<!-- ✅ JavaScript to handle client system time -->
<script>
  function updateSystemTime() {
    const now = new Date();
    document.getElementById("system-time").textContent = now.toLocaleTimeString();
  }

  function setClientTime(form) {
    const now = new Date();
    const time = now.toTimeString().split(" ")[0]; // HH:MM:SS format
    form.querySelector('input[name="client_time"]').value = time;
  }

  setInterval(updateSystemTime, 1000);
  updateSystemTime();
</script>

</body>
</html>
