CREATE DATABASE uszoegyesulet CHARACTER SET ="utf8" COLLATE="utf8_hungarian_ci";


CREATE TABLE tagok(
    id INT PRIMARY KEY AUTO_INCREMENT,
    vnev VARCHAR(255) NOT NULL,
    knev VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    telefon VARCHAR(255) NOT NULL,
    lakcim VARCHAR(255) NOT NULL,
    tagsag_kezdete DATE NOT NULL,
    aktiv_tagsagi_statusz BOOL NOT NULL);

CREATE TABLE esemenyek(
    id INT PRIMARY KEY AUTO_INCREMENT,
    esemeny_neve VARCHAR(255) NOT NULL,
    esemeny_datuma DATE NOT NULL,
    helyszin VARCHAR(255) NOT NULL,
    leiras TEXT COMMENT "Extra információt tartalmaz a versenyről, nem szükséges minden esetben megadni",
    max_letszam INT NOT NULL,
    szervezo VARCHAR(255) NOT NULL COMMENT "A szervező nevét tartalmazza",
    esemeny_statusz VARCHAR(10) COMMENT "Nyitott vagy Zárt állapotú lehet csak"
);

CREATE TABLE tagsag(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tag_id INT COMMENT "a tagok id-jának idegen kulcsa",
    dij_osszeg DECIMAL(10,2) NOT NULL,
    esedekesseg DATE NOT NULL,
    fizetes_statusz BOOL NOT NULL COMMENT "True ha fizetett, false ha nem",
    fizetes_datuma DATE NOT NULL,
    nyugtaszam VARCHAR(255) NOT NULL,
    megjegyzes TEXT
);

ALTER TABLE tagsag ADD FOREIGN KEY (tag_id) REFERENCES tagok(id);

CREATE TABLE jelenlet(
    id INT PRIMARY KEY AUTO_INCREMENT,
    esemeny_id INT COMMENT "az esemeny tabla id-jának idegen kulcsa",
    tag_id INT COMMENT "a tagok id-jának idegen kulcsa",
    jelenlet_datuma DATE,
    jelenlet_statusz BOOL NOT NULL COMMENT "True ha megjelent, false ha nem",
    visszajelzes TEXT,
    becsekkolas TIME,
    kicsekkolas TIME
);

ALTER TABLE jelenlet ADD FOREIGN KEY (tag_id) REFERENCES tagok(id);
ALTER TABLE jelenlet ADD FOREIGN KEY (esemeny_id) REFERENCES esemenyek(id);

CREATE TABLE visszajelzes(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tag_id INT COMMENT "a tagok id-jának idegen kulcsa",
    esemeny_id INT COMMENT "az esemeny tabla id-jának idegen kulcsa",
    visszajelzes_szovege TEXT,
    ertekeles INT,
    bekuldes_datuma DATE,
    lathatosag VARCHAR(20) COMMENT "Nyilvános / Privát",
    visszajelzes_statusz BOOL COMMENT "True ha küldött, false ha nem küldött visszajelzest"
);


ALTER TABLE visszajelzes ADD FOREIGN KEY (tag_id) REFERENCES tagok(id);
ALTER TABLE visszajelzes ADD FOREIGN KEY (esemeny_id) REFERENCES esemenyek(id);