/* */
CREATE TABLE Uslugi(
    Id_uslugi		CHAR(8)		CONSTRAINT Uslugi_Id_PK PRIMARY KEY,
    Nazwa_uslugi	VARCHAR2(50)	CONSTRAINT Uslugi_Nazwa_NN NOT NULL,
    Opis_uslugi		VARCHAR2(200)	DEFAULT 'Brak opisu uslugi'
,
    Priorytet           INTEGER         DEFAULT 200,
    Jednorazowa         CHAR(1)         DEFAULT 'N'
    CONSTRAINT Uslugi_Jedno_NN NOT NULL,
    CONSTRAINT Uslugi_Jedno_CH CHECK (Jednorazowa IN ('T', 'N'))
);


/* Zawiera sprzet fizyczny i wirtualny */
CREATE TABLE Sprzet(
    Id_sprzetu		CHAR(8)		CONSTRAINT Sprzet_Id_PK PRIMARY KEY,
    Nazwa_sprzetu	VARCHAR2(75)	CONSTRAINT Sprzet_Nazwa_NN NOT NULL,
    Opis_sprzetu	VARCHAR2(200)	DEFAULT 'Brak opisu sprzetu',
    Cena_sprzetu	NUMBER(9, 2)	DEFAULT 0,
    Typ			INTEGER		DEFAULT 0,
    Wirtualny		CHAR(1)		DEFAULT 'N'
    CONSTRAINT Sprzet_Wirtual_NN NOT NULL,
    CONSTRAINT Sprzet_Wirtual_CH CHECK (Wirtualny IN ('T', 'N'))
);


CREATE TABLE Oferuje(
    Id_sprzetu		CHAR(8)		CONSTRAINT Oferuje_Sprzet_FK REFERENCES Sprzet,
    Id_uslugi		CHAR(8)		CONSTRAINT Oferuje_Usluga_FK REFERENCES Uslugi
);


CREATE TABLE Wymaga(
    Id_sprzetu		CHAR(8)		CONSTRAINT Wymaga_Sprzet_FK REFERENCES Sprzet,
    Id_uslugi		CHAR(8)		CONSTRAINT Wymaga_Usluga_FK REFERENCES Uslugi
);


CREATE TABLE Kategorie_zastosowan(
    Id_kategorii	CHAR(3)		CONSTRAINT Kategorie_zastosowan_Id_PK PRIMARY KEY,
    Opis_kategorii	VARCHAR2(100)	DEFAULT 'Brak opisu kategorii zastosowan',
    Radio 		CHAR(1)		DEFAULT 'N'
    CONSTRAINT Kategorie_zastosowan_Radio_NN NOT NULL,
    CONSTRAINT Kategorie_zastosowan_Radio_CH CHECK (Radio IN ('T', 'N'))
);

/* To co wyswietla sie na stronie WWW, odwoluje sie do sprzetu wirtualnego */
CREATE TABLE Menu_zastosowan(
    Id_sprzetu		CHAR(8)		CONSTRAINT Menu_zastosowan_Sprzet_FK REFERENCES Sprzet,
    Id_kategorii	CHAR(3)		CONSTRAINT Menu_zastosowan_Kategoria_FK REFERENCES Kategorie_zastosowan,
    Domyslne		CHAR(1)		DEFAULT 'N',
    CONSTRAINT Menu_zastosowan_Unikat_UN UNIQUE (Id_kategorii, Id_sprzetu),
    CONSTRAINT Menu_zastosowan_Domyslne_CH CHECK (Domyslne IN ('T', 'N'))
);


CREATE TABLE Kategorie_sprzetu(
    Id_kategorii	CHAR(3)		CONSTRAINT Kategorie_sprzetu_Id_PK PRIMARY KEY,
    Opis_kategorii	VARCHAR2(100)	DEFAULT 'Brak opisu kategorii sprzetu'
);


CREATE TABLE Menu_sprzetu(
    Id_sprzetu		CHAR(8)		CONSTRAINT Menu_sprzetu_Sprzet_FK REFERENCES Sprzet,
    Id_kategorii	CHAR(3)		CONSTRAINT Menu_sprzetu_Kategoria_FK REFERENCES Kategorie_sprzetu,
    CONSTRAINT Menu_sprzetu_Unikat_UN UNIQUE (Id_kategorii, Id_sprzetu)
);
