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

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

/* Autorizācijas pārbaude */
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'];

/* Pārbaudām, vai padots team_id */
if (!isset($_GET['team_id'])) {
    // Ja team_id nav padots, aptur lapas izpildi
    die("Team ID not provided.");
}

// Pārveido team_id par veselu skaitli drošākai izmantošanai
$team_id = (int)$_GET['team_id'];

/* Iegūstam komandas informāciju */
$team_stmt = $pdo->prepare("SELECT * FROM teams WHERE id = ?");
$team_stmt->execute([$team_id]);
$team = $team_stmt->fetch();

/* Ja komanda neeksistē */
if (!$team) {
    // Ja komanda nav atrasta, aptur lapas izpildi
    die("Team not found.");
}

/* Nosakām, vai lietotājs ir komandas īpašnieks */
$is_owner = ($team['created_by'] == $user_id);

/* Draugu pievienošana komandai (tikai īpašniekam) */
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['friend_ids']) && $is_owner) {

    /* Sagatavojam vaicājumus */
    // Vaicājums jauna komandas dalībnieka pievienošanai
    $insert = $pdo->prepare("INSERT INTO team_members (team_id, user_id) VALUES (?, ?)");

    // Vaicājums, lai pārbaudītu, vai lietotājs jau ir komandā
    $check = $pdo->prepare("SELECT 1 FROM team_members WHERE team_id = ? AND user_id = ?");

    /* Pievienojam tikai tos draugus, kuri vēl nav komandā */
    foreach ($_POST['friend_ids'] as $fid) {
        // Pārveido drauga ID par veselu skaitli
        $fid = (int)$fid;

        // Pārbauda, vai draugs jau nav šajā komandā
        $check->execute([$team_id, $fid]);

        // Ja draugs vēl nav komandā, pievieno viņu
        if ($check->rowCount() === 0) {
            $insert->execute([$team_id, $fid]);
        }
    }

    // Pāradresē pēc veiksmīgas dalībnieku pievienošanas
    header("Location: ?team_id=$team_id&added=1");
    exit();
}

/* Komandas dalībnieka noņemšana (tikai īpašniekam) */
if (isset($_GET['remove']) && $is_owner) {
    // Iegūst noņemamā dalībnieka ID
    $remove_id = (int)$_GET['remove'];

    // Sagatavo vaicājumu dalībnieka dzēšanai no komandas
    $del = $pdo->prepare("DELETE FROM team_members WHERE team_id = ? AND user_id = ?");

    // Izņem dalībnieku no komandas
    $del->execute([$team_id, $remove_id]);

    // Pāradresē pēc veiksmīgas dalībnieka noņemšanas
    header("Location: ?team_id=$team_id&removed=1");
    exit();
}

/* Iegūstam visus komandas dalībniekus */
$members = $pdo->prepare("
    SELECT u.id, u.name, u.email
    FROM users u
    JOIN team_members tm ON u.id = tm.user_id
    WHERE tm.team_id = ?
    ORDER BY u.name ASC
");

// Izpilda vaicājumu ar komandas ID
$members->execute([$team_id]);

// Saglabā visus komandas dalībniekus masīvā
$team_members = $members->fetchAll(PDO::FETCH_ASSOC);

/* Iegūstam draugus, kuri vēl nav šajā komandā */
$friends = $pdo->prepare("
    SELECT u.id, u.name, u.email
    FROM users u
    WHERE u.id != ?
    AND (
        u.id IN (
            SELECT friend_id FROM friends 
            WHERE user_id = ? AND status = 'accepted'
        )
        OR
        u.id IN (
            SELECT user_id FROM friends 
            WHERE friend_id = ? AND status = 'accepted'
        )
    )
    AND u.id NOT IN (
        SELECT user_id FROM team_members WHERE team_id = ?
    )
    ORDER BY u.name ASC
");

// Izpilda vaicājumu, lai iegūtu pieejamos draugus pievienošanai
$friends->execute([$user_id, $user_id, $user_id, $team_id]);

// Saglabā draugus, kuri vēl nav komandā
$available_friends = $friends->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ē ar komandas nosaukumu -->
    <title><?= htmlspecialchars($team['name']) ?> - Team View</title>

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

    <!-- Pievieno komandas skata CSS failu -->
    <link rel="stylesheet" href="../css/team_view.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>
    <!-- Komandas skata galvenais konteiners -->
    <div class="team-view-container">

        <!-- Komandas galvenes daļa -->
        <div class="team-header">
            <!-- Izvada komandas nosaukumu -->
            <h2><?= htmlspecialchars($team['name']) ?></h2>

            <!-- Ja lietotājs ir īpašnieks, parāda īpašnieka paziņojumu -->
            <?php if ($is_owner): ?>
                <p style="margin: 10px 0 0 0; opacity: 0.9;">You are the team owner</p>
            <?php endif; ?>
        </div>

        <!-- Parāda paziņojumu, ja dalībnieki veiksmīgi pievienoti -->
        <?php if (isset($_GET['added'])): ?>
            <div class="message-box success">Members added successfully!</div>
        <?php endif; ?>
        
        <!-- Parāda paziņojumu, ja dalībnieks veiksmīgi noņemts -->
        <?php if (isset($_GET['removed'])): ?>
            <div class="message-box success">Member removed successfully!</div>
        <?php endif; ?>

        <!-- Dalībnieku sadaļa -->
        <div class="members-section">
            <!-- Virsraksts ar komandas dalībnieku skaitu -->
            <h3>Team Members (<?= count($team_members) ?>)</h3>
            
            <!-- Pārbauda, vai komandā ir dalībnieki -->
            <?php if (count($team_members) > 0): ?>

                <!-- Komandas dalībnieku kartīšu režģis -->
                <div class="members-grid">

                    <!-- Izvada katru komandas dalībnieku -->
                    <?php foreach ($team_members as $member): ?>
                        <!-- Viena dalībnieka kartīte -->
                        <div class="member-card">

                            <!-- Dalībnieka informācijas bloks -->
                            <div class="member-info">
                                <!-- Dalībnieka vārds -->
                                <div class="member-name"><?= htmlspecialchars($member['name']) ?></div>

                                <!-- Dalībnieka e-pasts -->
                                <div class="member-email"><?= htmlspecialchars($member['email']) ?></div>
                            </div>

                            <!-- Ja lietotājs ir īpašnieks un dalībnieks nav pats lietotājs, rāda noņemšanas pogu -->
                            <?php if ($is_owner && $member['id'] != $user_id): ?>
                                <a href="?team_id=<?= $team_id ?>&remove=<?= $member['id'] ?>" 
                                   class="btn-remove-member"
                                   onclick="return confirm('Remove this member from the team?')">
                                   Remove
                                </a>
                            <?php endif; ?>
                        </div>
                    <?php endforeach; ?>
                </div>

            <?php else: ?>
                <!-- Ziņojums, ja komandā vēl nav dalībnieku -->
                <div class="empty-members">
                    <p>No team members yet. Add friends to the team below!</p>
                </div>
            <?php endif; ?>
        </div>

        <!-- Sadaļa “Pievienot draugus” tiek parādīta tikai komandas īpašniekam -->
        <?php if ($is_owner): ?>
            <div class="add-friends-section">
                <!-- Sadaļas virsraksts -->
                <h3>Add Friends to Team</h3>

                <!-- Ja ir draugi, kurus var pievienot komandai -->
                <?php if (count($available_friends) > 0): ?>
                    <!-- Forma izvēlēto draugu pievienošanai komandai -->
                    <form method="post">

                        <!-- Draugu izvēles rūtiņu konteiners -->
                        <div class="friend-checkbox-container">

                            <!-- Izvada katru pieejamo draugu -->
                            <?php foreach ($available_friends as $friend): ?>
                                <!-- Viena drauga izvēles rūtiņa -->
                                <label class="friend-checkbox-label">
                                    <input type="checkbox" name="friend_ids[]" value="<?= $friend['id'] ?>">

                                    <!-- Drauga vārds un e-pasts -->
                                    <div class="checkbox-friend-info">
                                        <span class="checkbox-friend-name"><?= htmlspecialchars($friend['name']) ?></span>
                                        <span class="checkbox-friend-email"><?= htmlspecialchars($friend['email']) ?></span>
                                    </div>
                                </label>
                            <?php endforeach; ?>
                        </div>

                        <!-- Poga izvēlēto draugu pievienošanai komandai -->
                        <button type="submit" class="btn-add-selected">Add Selected Friends to Team</button>
                    </form>

                <?php else: ?>
                    <!-- Ziņojums, ja visi draugi jau ir komandā -->
                    <div class="no-friends-message">
                        <p>All your friends are already in this team!</p>
                    </div>
                <?php endif; ?>
            </div>
        <?php endif; ?>

        <!-- Saite atpakaļ uz komandu sarakstu -->
        <a href="teams.php" class="back-to-teams">← Back to Teams</a>
    </div>
</main>

</body>
</html>