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

// Pievieno e-pasta palīgfailu, kurā atrodas e-pasta sūtīšanas funkcijas
require_once '../PHPMailer/email_helper.php';

/* Kļūdas ziņojums */
$error = '';

/* Pārbaudām, vai forma ir iesniegta */
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    /* Iegūstam formas datus */
    $name         = $_POST['name'];
    $email        = $_POST['email'];
    $raw_password = $_POST['password'];
    $allow_email  = isset($_POST['allow_email_notifications']) ? 1 : 0;

    /* Paroles garuma pārbaude */
    if (strlen($raw_password) < 8) {
        // Ja parole ir īsāka par 8 rakstzīmēm, saglabā kļūdas paziņojumu
        $error = 'Parolei jābūt vismaz 8 rakstzīmes garai!';
    } else {

        /* Paroles šifrēšana */
        // Šifrē paroli, lai datu bāzē netiktu saglabāta parasta parole
        $password = password_hash($raw_password, PASSWORD_DEFAULT);

        /* Pārbaudām, vai e-pasts jau eksistē */
        // Sagatavo vaicājumu lietotāja meklēšanai pēc e-pasta
        $stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?");

        // Izpilda vaicājumu ar ievadīto e-pastu
        $stmt->execute([$email]);

        // Iegūst atrasto lietotāju, ja tāds eksistē
        $existing_user = $stmt->fetch();

        // Ja lietotājs ar šādu e-pastu jau eksistē
        if ($existing_user) {
            $error = 'Šis e-pasts jau tiek izmantots!';
        } else {

            /* Jauna lietotāja izveide */
            // Sagatavo vaicājumu jauna lietotāja pievienošanai
            $stmt = $pdo->prepare("
                INSERT INTO users (name, email, password_hash, allow_email_notifications)
                VALUES (?, ?, ?, ?)
            ");

            // Izpilda lietotāja pievienošanu datu bāzē
            if ($stmt->execute([$name, $email, $password, $allow_email])) {

                /* Iegūstam jaunā lietotāja ID */
                // Iegūst tikko izveidotā lietotāja ID
                $user_id = $pdo->lastInsertId();

                /* Izveidojam noklusējuma atgādinājumu iestatījumus */
                // Saglabā noklusējuma paziņojumu iestatījumus jaunajam lietotājam
                $pdo->prepare("
                    INSERT INTO user_notification_preferences
                    (user_id, reminder_1h, reminder_6h, reminder_12h, reminder_24h)
                    VALUES (?, 1, 0, 0, 1)
                ")->execute([$user_id]);

                /* Nosūtām sveiciena e-pastu, ja lietotājs atļāva paziņojumus */
                if ($allow_email) {
                    // Izsauc funkciju sveiciena e-pasta nosūtīšanai
                    sendWelcomeEmail($email, $name);
                }

                /* Veiksmīga reģistrācija – novirzām uz login */
                // Pāradresē lietotāju uz pieslēgšanās lapu
                header('Location: login.php?registered=1');
                exit();

            } else {
                // Ja lietotāja pievienošana neizdevās
                $error = 'Reģistrācijas laikā radās kļūda!';
            }
        }
    }
}
?>

<!-- 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>Register - Work Planner</title>

    <!-- Pievieno lietotāju lapām paredzēto CSS failu -->
    <link rel="stylesheet" href="../css/users.css">
</head>
<body>

<!-- Reģistrācijas formas konteiners -->
<div class="form-container">
    <!-- Formas virsraksts -->
    <h2>Create Account</h2>

    <!-- Ja ir kļūdas paziņojums, tas tiek parādīts -->
    <?php if (!empty($error)): ?>
        <p class="error"><?= htmlspecialchars($error) ?></p>
    <?php endif; ?>

    <!-- Reģistrācijas forma -->
    <form action="register.php" method="post">

        <!-- Vārda ievades lauka nosaukums -->
        <label for="name">Name</label>

        <!-- Vārda ievades lauks -->
        <input type="text" name="name" id="name" required>

        <!-- E-pasta ievades lauka nosaukums -->
        <label for="email">Email</label>

        <!-- E-pasta ievades lauks -->
        <input type="email" name="email" id="email" required>

        <!-- Paroles ievades lauka nosaukums -->
        <label for="password">Password (min 8 characters)</label>

        <!-- Paroles ievades lauks ar minimālo garumu 8 rakstzīmes -->
        <input type="password" name="password" id="password" required minlength="8">

        <!-- E-pasta paziņojumu izvēles konteiners -->
        <div class="checkbox-container">
            <!-- Izvēles rūtiņa e-pasta paziņojumu atļaušanai -->
            <label class="checkbox-label">
                <input type="checkbox" name="allow_email_notifications" checked>
                <span>Allow email notifications for reminders</span>
            </label>
        </div>

        <!-- Poga formas nosūtīšanai un konta izveidei -->
        <button type="submit">Register</button>
    </form>

    <!-- Teksts ar saiti uz pieslēgšanās lapu -->
    <p class="form-footer">
        Already have an account?
        <a href="login.php">Login here</a>
    </p>
</div>

</body>
</html>