CREATE TABLE maad (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nimi VARCHAR(100) NOT NULL
);

CREATE TABLE kihelkonnad (
    id INT AUTO_INCREMENT PRIMARY KEY,
    maa_id INT NOT NULL,
    nimi VARCHAR(100) NOT NULL,
    staatus ENUM('taastamisel','osaline','taielik') DEFAULT 'taastamisel',
    FOREIGN KEY (maa_id) REFERENCES maad(id)
);

CREATE TABLE inimesed (
    id INT AUTO_INCREMENT PRIMARY KEY,
    eesnimi VARCHAR(100),
    perenimi VARCHAR(100),
    roll ENUM('tuumruhm','esinduskogu','koostookogu'),
    aktiivne BOOLEAN DEFAULT TRUE
);

CREATE TABLE tuumruhmad (
    id INT AUTO_INCREMENT PRIMARY KEY,
    kihelkond_id INT NOT NULL,
    nimi VARCHAR(255),
    FOREIGN KEY (kihelkond_id) REFERENCES kihelkonnad(id)
);

CREATE TABLE tuumruhma_liikmed (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tuumruhm_id INT NOT NULL,
    inimene_id INT NOT NULL,
    amet VARCHAR(100),
    FOREIGN KEY (tuumruhm_id) REFERENCES tuumruhmad(id),
    FOREIGN KEY (inimene_id) REFERENCES inimesed(id)
);

CREATE TABLE esinduskogud (
    id INT AUTO_INCREMENT PRIMARY KEY,
    kihelkond_id INT NOT NULL,
    nimi VARCHAR(255),
    FOREIGN KEY (kihelkond_id) REFERENCES kihelkonnad(id)
);

CREATE TABLE esinduskogu_liikmed (
    id INT AUTO_INCREMENT PRIMARY KEY,
    esinduskogu_id INT NOT NULL,
    inimene_id INT NOT NULL,
    amet VARCHAR(100),
    FOREIGN KEY (esinduskogu_id) REFERENCES esinduskogud(id),
    FOREIGN KEY (inimene_id) REFERENCES inimesed(id)
);

CREATE TABLE koostookogu (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nimi VARCHAR(255) NOT NULL,
    kirjeldus TEXT
);

CREATE TABLE koostookogu_liikmed (
    id INT AUTO_INCREMENT PRIMARY KEY,
    koostookogu_id INT NOT NULL,
    inimene_id INT NOT NULL,
    maa_id INT NOT NULL,
    kihelkond_id INT NOT NULL,
    FOREIGN KEY (koostookogu_id) REFERENCES koostookogu(id),
    FOREIGN KEY (inimene_id) REFERENCES inimesed(id),
    FOREIGN KEY (maa_id) REFERENCES maad(id),
    FOREIGN KEY (kihelkond_id) REFERENCES kihelkonnad(id)
);

CREATE TABLE otsused (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tase ENUM('kihelkond','maa','koostookogu'),
    seotud_id INT NOT NULL,
    pealkiri VARCHAR(255),
    kirjeldus TEXT,
    kuupaev DATE
);

CREATE TABLE tunnustused (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tunnustaja_kihelkond_id INT NOT NULL,
    tunnustatud_kihelkond_id INT NOT NULL,
    kuupaev DATE,
    FOREIGN KEY (tunnustaja_kihelkond_id) REFERENCES kihelkonnad(id),
    FOREIGN KEY (tunnustatud_kihelkond_id) REFERENCES kihelkonnad(id)
);

INSERT INTO maad (nimi) VALUES
('Virumaa'),
('Saaremaa');

INSERT INTO kihelkonnad (maa_id, nimi, staatus) VALUES
(1,'Haljala','taielik'),
(1,'Rakvere','taielik'),
(1,'Lüganuse','osaline'),
(1,'Vaivara','taastamisel'),
(2,'Karja','osaline');
