CREATE TABLE Artysci (
    id int  SERIAL PRIMARY KEY,
    imie varchar(30)  NOT NULL,
    nazwisko varchar(30)  NOT NULL,
    rok_urodzenia int  NOT NULL,
    rok_smierci int
);

CREATE TABLE Eksponaty (
    id int  SERIAL PRIMARY KEY,
    tytul varchar(50)  NOT NULL,
    typ varchar(10)  NOT NULL,
    autor int REFERENCES Artysci,
    wysokosc int,
    szerokosc int,
    waga int,
    cenny boolean  NOT NULL
);

CREATE TABLE Miejsca (
    id int  SERIAL PRIMARY KEY,
    typ varchar(10)  NOT NULL
);

CREATE TABLE Instytucje (
    id int SERIAL PRIMARY KEY,
    nazwa varchar(50)  NOT NULL,
    miasto varchar(50)  NOT NULL,
    id_miejsca int  NOT NULL REFERENCES Miejsca
);

CREATE TABLE Pomieszczenia (
    id int  SERIAL PRIMARY KEY,
    nazwa varchar(50)  NOT NULL,
    id_miejsca int  NOT NULL REFERENCES Miejsca,
    gdzie_sie_znajduje int  NULL REFERENCES Pomieszczenia
);

CREATE TABLE Wystawienia (
    id int  SERIAL PRIMARY KEY,
    miejsce int  NOT NULL REFERENCES Miejsca,
    eksponat int  NOT NULL,
    data_rozpoczęcia date  NOT NULL,
    data_zakończenia date
);


-- procedura
CREATE OR REPLACE FUNCTION dodaj_eksponat(tytul varchar(50), typ varchar(10), autor int, wysokosc int, szerokosc int, waga int, cenny boolean)
BEGIN
    INSERT INTO Eksponaty (tytul, typ, autor, wysokosc, szerokosc, waga, cenny) VALUES ($1, $2, $3, $4, $5, $6, $7);
END;