<?php
// Uzsāk sesiju, lai varētu izmantot lietotāja sesijas datus
session_start();

// Pievieno datu bāzes savienojuma failu
include 'database/db.php';

// Pārbauda, vai lietotājs ir pieslēdzies
if (!isset($_SESSION['user_id'])) {
    // Ja lietotājs nav pieslēdzies, pāradresē uz login lapu
    header("Location: users/login.php");
    exit();
}

// Saglabā pieslēgtā lietotāja ID
$user_id = $_SESSION['user_id'];

/* Iegūstam visus lietotāja kalendārus */
$own_calendars_stmt = $pdo->prepare("
    SELECT * FROM calendars WHERE user_id = ? ORDER BY name ASC
");

// Izpilda vaicājumu ar lietotāja ID
$own_calendars_stmt->execute([$user_id]);

// Saglabā lietotāja izveidotos kalendārus masīvā
$own_calendars = $own_calendars_stmt->fetchAll(PDO::FETCH_ASSOC);

// Sagatavo vaicājumu koplietoto kalendāru iegūšanai
$shared_calendars_stmt = $pdo->prepare("
    SELECT c.*, u.name AS owner_name
    FROM calendars c
    JOIN calendar_access ca ON c.id = ca.calendar_id
    JOIN users u ON c.user_id = u.id
    WHERE ca.user_id = ?
    ORDER BY c.name ASC
");

// Izpilda vaicājumu ar lietotāja ID
$shared_calendars_stmt->execute([$user_id]);

// Saglabā kalendārus, kuri ir koplietoti ar lietotāju
$shared_calendars = $shared_calendars_stmt->fetchAll(PDO::FETCH_ASSOC);

/* Iegūstam draugus, kuriem ir pieeja kalendāriem */
$friends_stmt = $pdo->prepare("
    SELECT 
        f.id,
        u.name AS friend_name,
        f.can_edit,
        f.calendar_id
    FROM friends f
    LEFT JOIN users u ON f.friend_id = u.id
    WHERE f.user_id = ?
");

// Izpilda draugu vaicājumu
$friends_stmt->execute([$user_id]);

// Saglabā draugu sarakstu masīvā
$friends = $friends_stmt->fetchAll(PDO::FETCH_ASSOC);

/* 
Iegūstam tuvākos atgādinājumus:
- tikai nākamajām 7 dienām
- maksimāli 8 ierakstus
*/
$reminders_stmt = $pdo->prepare("
    SELECT 
        r.id,
        r.reminder_time,
        r.is_sent,
        t.title,
        t.start_datetime,
        t.color,
        c.name AS calendar_name
    FROM reminders r
    JOIN tasks t ON r.task_id = t.id
    LEFT JOIN calendars c ON t.calendar_id = c.id
    WHERE 
        r.user_id = ?
        AND r.reminder_time >= NOW()
        AND r.reminder_time <= DATE_ADD(NOW(), INTERVAL 7 DAY)
    GROUP BY r.task_id
    ORDER BY r.reminder_time ASC
    LIMIT 8
");

// Izpilda atgādinājumu vaicājumu ar lietotāja ID
$reminders_stmt->execute([$user_id]);

// Saglabā tuvākos atgādinājumus
$upcoming_reminders = $reminders_stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!-- Norāda, ka dokuments ir HTML5 formātā -->
<!DOCTYPE html>

<!-- HTML dokumenta sākums, valoda iestatīta uz angļu -->
<html lang="en">
<head>
    <!-- Iestata simbolu kodējumu uz UTF-8 -->
    <meta charset="UTF-8">

    <!-- Nodrošina lapas pielāgošanos dažādiem ekrāna izmēriem -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Lapas nosaukums pārlūkprogrammas cilnē -->
    <title>Dashboard - Work Planner</title>

    <!-- Pievieno galveno CSS failu -->
    <link rel="stylesheet" href="css/style.css">

    <!-- Pievieno modālā loga CSS failu -->
    <link rel="stylesheet" href="css/modal.css">

    <!-- Pievieno dashboard lapas CSS failu -->
    <link rel="stylesheet" href="css/dashboard.css">
</head>
<body>

<!-- Navigācijas izvēlne -->
<nav>
    <ul>
        <!-- Saite uz galveno paneli -->
        <li><a href="dashboard.php">Dashboard</a></li>

        <!-- Saite uz kalendāra lapu -->
        <li><a href="calendar/calendar.php">Calendar</a></li>

        <!-- Saite uz visu uzdevumu lapu -->
        <li><a href="tasks/tasks.php">All Tasks</a></li>

        <!-- Saite uz komandu lapu -->
        <li><a href="teams/teams.php">Teams</a></li>

        <!-- Saite uz draugu lapu -->
        <li><a href="friends/add_friend.php">Friends</a></li>

        <!-- Saite uz profila lapu -->
        <li><a href="profile/profile.php">Profile</a></li>

        <!-- Saite lietotāja izrakstīšanai -->
        <li><a href="users/logout.php">Logout</a></li>
    </ul>
</nav>

<!-- Galvenais lapas saturs -->
<main>
<h2>Dashboard</h2>

<!-- Dashboard sadaļu režģis -->
<div class="dashboard-grid">

    <!-- Kreisā dashboard puse -->
    <div class="dashboard-left">

        <!-- Kalendāru saraksta sadaļa -->
        <div class="calendar-list">

            <!-- Lietotāja kalendāru virsraksts -->
            <h3>Your Calendars</h3>

            <!-- Saite jauna kalendāra izveidei -->
            <a href="calendar/calendar_create.php" class="add-calendar-btn">
                + Add New Calendar
            </a>

            <!-- Pārbauda, vai lietotājam ir savi kalendāri -->
            <?php if ($own_calendars): ?>
                <ul>
                    <!-- Izvada katru lietotāja kalendāru -->
                    <?php foreach ($own_calendars as $cal): ?>
                        <li>
                            <!-- Kalendāra nosaukums -->
                            <strong><?= htmlspecialchars($cal['name']) ?></strong>

                            <!-- Kalendāra darbību pogas -->
                            <div class="item-actions">
                                <!-- Atver kalendāra rediģēšanas modālo logu -->
                                <a href="#" onclick="openEditModal(<?= $cal['id'] ?>); return false;">Edit</a>

                                <!-- Dzēš kalendāru pēc apstiprinājuma -->
                                <a href="calendar/calendar_delete.php?calendar_id=<?= $cal['id'] ?>"
                                   class="delete-link"
                                   onclick="return confirm('Are you sure you want to delete this calendar?');">
                                    Delete
                                </a>
                            </div>
                        </li>
                    <?php endforeach; ?>
                </ul>

            <?php else: ?>
                <!-- Ziņojums, ja lietotājam vēl nav kalendāru -->
                <p class="empty-text">No calendars yet. Create your first calendar!</p>
            <?php endif; ?>

            <!-- Koplietoto kalendāru virsraksts -->
            <h3 style="margin-top: 24px;">Shared Calendars</h3>

            <!-- Pārbauda, vai ar lietotāju ir koplietoti kalendāri -->
            <?php if ($shared_calendars): ?>
                <ul>
                    <!-- Izvada katru koplietoto kalendāru -->
                    <?php foreach ($shared_calendars as $cal): ?>
                        <li>
                            <!-- Koplietotā kalendāra nosaukums -->
                            <strong><?= htmlspecialchars($cal['name']) ?></strong>

                            <!-- Kalendāra īpašnieka vārds -->
                            <span class="owner-badge">by <?= htmlspecialchars($cal['owner_name']) ?></span>
                        </li>
                    <?php endforeach; ?>
                </ul>

            <?php else: ?>
                <!-- Ziņojums, ja nav koplietotu kalendāru -->
                <p class="empty-text">No shared calendars yet.</p>
            <?php endif; ?>

        </div>
    </div>

    <!-- Labā dashboard puse -->
    <div class="dashboard-right">

        <!-- Atgādinājumu sadaļa -->
        <div class="reminders-section">
            <!-- Sadaļas virsraksts -->
            <h3>Reminders</h3>

            <!-- Sadaļas paskaidrojums -->
            <p class="hint">Your reminders for the next 7 days</p>

            <!-- Pārbauda, vai ir tuvākie atgādinājumi -->
            <?php if (count($upcoming_reminders) > 0): ?>
                <div class="reminders-list">

                    <!-- Izvada katru atgādinājumu -->
                    <?php foreach ($upcoming_reminders as $reminder): ?>
                        <?php
                        // Izveido datuma objektu atgādinājuma laikam
                        $reminder_dt = new DateTime($reminder['reminder_time']);

                        // Izveido datuma objektu uzdevuma sākuma laikam
                        $task_dt = new DateTime($reminder['start_datetime']);

                        // Izveido pašreizējā laika objektu
                        $now = new DateTime();

                        // Aprēķina laika starpību starp tagadni un atgādinājuma laiku
                        $diff = $now->diff($reminder_dt);

                        // Nosaka, cik daudz laika palicis līdz atgādinājumam
                        if ($reminder_dt > $now) {
                            if ($diff->days > 0) {
                                $time_until = $diff->days . ' day' . ($diff->days > 1 ? 's' : '');
                            } elseif ($diff->h > 0) {
                                $time_until = $diff->h . ' hour' . ($diff->h > 1 ? 's' : '');
                            } else {
                                $time_until = $diff->i . ' min';
                            }
                        } else {
                            $time_until = 'Now';
                        }
                        ?>

                        <!-- Atgādinājuma kartīte ar krāsainu sānu līniju -->
                        <div class="reminder-card"
                             style="border-left-color: <?= htmlspecialchars($reminder['color']) ?>;">

                            <!-- Atgādinājuma ikona -->
                            <div class="reminder-icon">⏰</div>

                            <!-- Atgādinājuma saturs -->
                            <div class="reminder-content">

                                <!-- Uzdevuma nosaukums -->
                                <strong><?= htmlspecialchars($reminder['title']) ?></strong>

                                <!-- Kalendāra nosaukums -->
                                <div class="reminder-calendar">
                                    <?= htmlspecialchars($reminder['calendar_name'] ?? 'No Calendar') ?>
                                </div>

                                <!-- Laiks līdz atgādinājumam -->
                                <div class="reminder-time">
                                    Reminder in:
                                    <span class="time-badge"><?= $time_until ?></span>
                                </div>

                                <!-- Uzdevuma sākuma laiks -->
                                <div class="reminder-details">
                                    Task starts: <?= $task_dt->format('M d, Y - H:i') ?>
                                </div>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>

                <!-- Saite uz visu uzdevumu lapu -->
                <a href="tasks/tasks.php" class="view-all-link">
                    View All Tasks →
                </a>

            <?php else: ?>
                <!-- Ziņojums, ja nav tuvāko atgādinājumu -->
                <div class="no-reminders">
                    <p>No upcoming reminders</p>
                    <small>Reminders are created automatically when you add tasks</small>

                    <!-- Saite pirmā uzdevuma pievienošanai -->
                    <a href="tasks/tasks.php" class="btn-add-task-link">
                        + Add Your First Task
                    </a>
                </div>
            <?php endif; ?>
        </div>
    </div>

</div>
</main>

<!-- Kalendāra rediģēšanas modālais logs -->
<div id="editModal" class="modal">
    <!-- Modālā loga saturs -->
    <div class="modal-content">

        <!-- Modālā loga galvene -->
        <div class="modal-header">
            <!-- Modālā loga virsraksts -->
            <h2>Edit Calendar</h2>

            <!-- Poga modālā loga aizvēršanai -->
            <button class="close-btn" onclick="closeEditModal()">&times;</button>
        </div>

        <!-- Ziņojumu vieta modālajā logā -->
        <div id="modalMessage" class="message"></div>

        <!-- Kalendāra rediģēšanas forma -->
        <form id="editCalendarForm">

            <!-- Slēpts lauks kalendāra ID glabāšanai -->
            <input type="hidden" id="calendar_id" name="calendar_id">

            <!-- Kalendāra nosaukuma ievades grupa -->
            <div class="form-group">
                <label for="calendar_name">Calendar Name</label>
                <input type="text" id="calendar_name" name="name" required>
            </div>

            <!-- Vizuāls sadaļu atdalītājs -->
            <div class="section-divider"></div>

            <!-- Cilņu pogas -->
            <div class="tabs">
                <!-- Cilne pašreizējām pieejām -->
                <button type="button" class="tab active" onclick="switchTab('shared')">
                    Currently Shared (0)
                </button>

                <!-- Cilne draugu pievienošanai -->
                <button type="button" class="tab" onclick="switchTab('friends')">
                    Add Friends
                </button>

                <!-- Cilne komandu pievienošanai -->
                <button type="button" class="tab" onclick="switchTab('teams')">
                    Add Teams
                </button>
            </div>

            <!-- Pašreizējās pieejas cilnes saturs -->
            <div id="tab-shared" class="tab-content active">
                <div class="section-title">People with Access</div>

                <!-- Šeit ar JavaScript tiek ielādēts lietotāju saraksts ar pieeju -->
                <div id="sharedList"></div>
            </div>

            <!-- Draugu pievienošanas cilnes saturs -->
            <div id="tab-friends" class="tab-content">
                <div class="section-title">Available Friends</div>

                <!-- Šeit ar JavaScript tiek ielādēts pieejamo draugu saraksts -->
                <div id="availableFriendsList"></div>
            </div>

            <!-- Komandu pievienošanas cilnes saturs -->
            <div id="tab-teams" class="tab-content">
                <div class="section-title">Your Teams</div>

                <!-- Šeit ar JavaScript tiek ielādēts pieejamo komandu saraksts -->
                <div id="availableTeamsList"></div>
            </div>

            <!-- Modālā loga apakšējā daļa ar pogām -->
            <div class="modal-footer">
                <!-- Poga modālā loga aizvēršanai bez saglabāšanas -->
                <button type="button" class="btn-cancel" onclick="closeEditModal()">
                    Close
                </button>

                <!-- Poga kalendāra izmaiņu saglabāšanai -->
                <button type="submit" class="btn-save">
                    Save Calendar
                </button>
            </div>
        </form>
    </div>
</div>

<!-- Pievieno dashboard lapas JavaScript failu -->
<script src="js/dashboard.js"></script>
</body>
</html>