-- Utwórz bazę danych dla firmy szkoleniowej
CREATE DATABASE IF NOT EXISTS szkolenia CHARACTER SET utf8 COLLATE utf8_unicode_ci;

-- Wybierz bazę danych do pracy
USE szkolenia;

-- Tabela: kategorie_kursow
CREATE TABLE IF NOT EXISTS kategorie_kursow (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(50) NOT NULL UNIQUE,
    opis TEXT
);

-- Wstaw dane do tabeli kategorii
INSERT INTO kategorie_kursow (nazwa, opis) VALUES
('podstawowy', 'Kurs przeznaczony dla początkujących'),
('średni', 'Kurs dla osób mających podstawową wiedzę'),
('zaawansowany', 'Kurs dla osób posiadających zaawansowaną wiedzę');

-- Tabela: kursy (z dodanym czasem trwania)
CREATE TABLE IF NOT EXISTS kursy (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(255) NOT NULL,
    cena DECIMAL(10, 2) NOT NULL,
    czas_trwania VARCHAR(50) NOT NULL DEFAULT '2 miesiące',
    id_kategorii INT,
    FOREIGN KEY (id_kategorii) REFERENCES kategorie_kursow(id),
    UNIQUE KEY unique_nazwa (nazwa)
);

-- Wstaw dane do tabeli kursy z czasem trwania
INSERT INTO kursy (nazwa, cena, czas_trwania, id_kategorii) VALUES
('Kurs HTML i CSS', 500.00, '2 miesiące', 1),
('Kurs JavaScript', 700.00, '3 miesiące', 2),
('Kurs React.js', 900.00, '4 miesiące', 3);

-- Tabela: miasta
CREATE TABLE IF NOT EXISTS miasta (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(100) NOT NULL UNIQUE
);

-- Wstaw dane do tabeli miasta
INSERT INTO miasta (nazwa) VALUES
('Warszawa'),
('Katowice'),
('Gdańsk');

-- Tabela: kursy_miasta (relacja wiele-do-wielu: kurs może być w wielu miastach)
CREATE TABLE IF NOT EXISTS kursy_miasta (
    id_kursu INT NOT NULL,
    id_miasta INT NOT NULL,
    PRIMARY KEY (id_kursu, id_miasta),
    FOREIGN KEY (id_kursu) REFERENCES kursy(id) ON DELETE CASCADE,
    FOREIGN KEY (id_miasta) REFERENCES miasta(id) ON DELETE CASCADE
);

-- Przykładowe przypisanie kursów do miast (każdy kurs w każdym mieście)
INSERT INTO kursy_miasta (id_kursu, id_miasta)
SELECT k.id, m.id
FROM kursy k
CROSS JOIN miasta m;

