-- Query 6
-- Funkcija lietotāja pieslēgšanai (login)
DELIMITER $$

CREATE FUNCTION fn_login(
    p_username VARCHAR(50), -- Lietotājvārds
    p_password VARCHAR(255) -- Parole
) RETURNS VARCHAR(64)
BEGIN
    DECLARE uid INT;           -- Lietotāja ID
    DECLARE token VARCHAR(64); -- Sesijas tokens

    -- Atrod lietotāju, ja dati ir pareizi
    SELECT user_id INTO uid
    FROM users
    WHERE username = p_username
      AND password_hash = SHA2(p_password,256)
      AND is_active = TRUE;

    -- Ja lietotājs nav atrasts
    IF uid IS NULL THEN
        RETURN NULL;
    END IF;

    -- Izveido unikālu tokenu
    SET token = UUID();

    -- Saglabā sesiju ar derīgumu 10 minūtes
    INSERT INTO sessions(user_id, session_token, expires_at)
    VALUES (uid, token, DATE_ADD(NOW(), INTERVAL 10 MINUTE));

    -- Atgriež sesijas tokenu
    RETURN token;
END$$

DELIMITER ;
