-- Query 1
-- Izveido jaunu datubāzi ar UTF-8 kodējumu
CREATE DATABASE login_system CHARACTER SET utf8mb4;

-- Izvēlas datubāzi darbam
USE login_system;

-- Izveido lietotāju tabulu
CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY, -- Unikāls lietotāja ID
    username VARCHAR(50) UNIQUE NOT NULL,   -- Lietotājvārds (unikāls)
    password_hash VARCHAR(255) NOT NULL,    -- Paroles hash vērtība
    email VARCHAR(100),                     -- Lietotāja e-pasts
    is_active BOOLEAN DEFAULT TRUE,          -- Vai lietotājs ir aktīvs
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP, -- Izveidošanas laiks
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- Atjaunināšanas laiks
);

-- Izveido sesiju tabulu
CREATE TABLE sessions (
    session_id INT AUTO_INCREMENT PRIMARY KEY, -- Sesijas ID
    user_id INT NOT NULL,                       -- Saistītais lietotājs
    session_token VARCHAR(64) UNIQUE NOT NULL,  -- Sesijas tokens
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP, -- Sesijas izveide
    last_activity_at DATETIME DEFAULT CURRENT_TIMESTAMP, -- Pēdējā aktivitāte
    expires_at DATETIME NOT NULL,               -- Sesijas derīguma termiņš
    is_active BOOLEAN DEFAULT TRUE,              -- Vai sesija ir aktīva
    FOREIGN KEY (user_id) REFERENCES users(user_id) -- Saite uz users tabulu
);

-- Izveido audita (darbību) žurnāla tabulu
CREATE TABLE audit_log (
    log_id INT AUTO_INCREMENT PRIMARY KEY, -- Ieraksta ID
    user_id INT NULL,                      -- Lietotāja ID (ja ir)
    action VARCHAR(255),                   -- Veiktā darbība
    action_time DATETIME DEFAULT CURRENT_TIMESTAMP, -- Darbības laiks
    ip_address VARCHAR(45)                 -- IP adrese
);
