CREATE TABLE DOCUMENT (
    DOCUMENT_ID NUMBER PRIMARY KEY,
    COCUMENTBESCHRIJVING VARCHAR2(255),
    DATUMCREATIEDOCUMENT DATE,
    DATUMONTVANGSTDOCUMENT DATE,
    DATUMVERZENDINGDOCUMENT DATE,
    DOCUMENTAUTEUR VARCHAR2(200),
    DOCUMENTIDENTIFICATIE VARCHAR2(255),
    DOCUMENTTITEL VARCHAR2(200),
    VERTROUWELIJKAANDUIDING VARCHAR2(20)
);

CREATE TABLE KOSTENPLAATS (
    KOSTENPLAATS_ID NUMBER PRIMARY KEY,
    BTWCODE VARCHAR2(255),
    BTWOMSCHRIJVING VARCHAR2(80),
    KOSTENPLAATSSOORTCODE NUMBER(10,2),
    KOSTENPLAATSSOORTOMSCHRIJVING NUMBER(10,2),
    KOSTENPLAATSTYPECODE NUMBER(10,2),
    KOSTENPLAATSTYPEOMSCHRIJVING NUMBER(10,2),
    NAAM VARCHAR2(80),
    OMSCHRIJVING VARCHAR2(200)
);

CREATE TABLE LEVERANCIER (
    LEVERANCIER_ID NUMBER PRIMARY KEY,
    NAAM VARCHAR2(200),
    NUMMER VARCHAR2(255)
);

CREATE TABLE ORGANISATORISCHEEENHEID (
    ORGANISATORISCHEEENHEID_ID NUMBER PRIMARY KEY,
    DATUMONTSTAAN DATE,
    DATUMOPHEFFING DATE,
    EMAILADRES VARCHAR2(255),
    FAXNUMMER VARCHAR2(20),
    FORMATIE VARCHAR2(255),
    HEEFT_KOSTENPLAATS_ID NUMBER,
    IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID NUMBER,
    NAAM VARCHAR2(50),
    NAAMVERKORT VARCHAR2(255),
    OMSCHRIJVING VARCHAR2(80),
    ORGANISATIEIDENTIFICATIE VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    TOELICHTING VARCHAR2(255)
);

CREATE TABLE CONTRACT (
    CONTRACT_ID NUMBER PRIMARY KEY,
    AUTORISATIEGROEP VARCHAR2(200),
    BESCHRIJVING CLOB,
    BOVENLIGGEND_CONTRACT_ID NUMBER,
    CATEGORIE VARCHAR2(80),
    CLASSIFICATIE VARCHAR2(80),
    CONTRACTANT_LEVERANCIER_ID NUMBER,
    CONTRACTREVISIE NUMBER,
    DATUMCREATIE DATE,
    DATUMEINDE DATE,
    DATUMSTART DATE,
    GROEP VARCHAR2(80),
    INTERNCONTRACTID VARCHAR2(255),
    INTERNCONTRACTREVISIE NUMBER,
    OPMERKINGEN CLOB,
    STATUS VARCHAR2(80),
    TYPE VARCHAR2(80),
    VOORWAARDE VARCHAR2(80),
    ZOEKWOORDEN VARCHAR2(255)
);

CREATE TABLE MEDEWERKER (
    MEDEWERKER_ID NUMBER PRIMARY KEY,
    ACHTERNAAM VARCHAR2(200),
    DATUMINDIENST DATE,
    DATUMUITDIENST DATE,
    EMAILADRES VARCHAR2(255),
    EXTERN NUMBER(1),
    FUNCTIE VARCHAR2(50),
    GELEVERD_VIA_LEVERANCIER_ID NUMBER,
    GESLACHTSAANDUIDING VARCHAR2(255),
    IS_CONTACTPERSOON_VOOR_ORGANISATORISCHEEENHEID_ID NUMBER,
    IS_VERANTWOORDELIJK_VOOR_ORGANISATORISCHEEENHEID_ID NUMBER,
    MEDEWERKERIDENTIFICATIE VARCHAR2(255),
    MEDEWERKERTOELICHTING VARCHAR2(255),
    ROEPNAAM VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    VOORLETTERS VARCHAR2(20),
    VOORVOEGSELACHTERNAAM VARCHAR2(255)
);

CREATE TABLE INKOOPORDER (
    INKOOPORDER_ID NUMBER PRIMARY KEY,
    ARTIKELCODE VARCHAR2(80),
    BETALINGMEERDEREJAREN NUMBER(1),
    BETREFT VARCHAR2(255),
    BETREFT_CONTRACT_ID NUMBER,
    DATUMEINDE DATE,
    DATUMINGEDIEND DATE,
    DATUMSTART DATE,
    GERELATEERD_INKOOPORDER_ID NUMBER,
    GOEDERENCODE VARCHAR2(80),
    OMSCHRIJVING VARCHAR2(255),
    OORSPRONKELIJK_INKOOPORDER_ID NUMBER,
    ORDERNUMMER VARCHAR2(255),
    SALDO VARCHAR2(255),
    TOTAALNETTOBEDRAG NUMBER(10,2),
    VERPLICHTING_AAN_LEVERANCIER_ID NUMBER,
    WIJZEVANAANBESTEDEN VARCHAR2(255)
);

CREATE TABLE KP_CNTRCT_DCMNT (
    KP_CNTRCT_DCMNT_ID NUMBER PRIMARY KEY,
    CONTRACT_ID NUMBER,
    DOCUMENT_ID NUMBER
);

CREATE TABLE KP_MDWRKR_ORGNSTRSCHNHD (
    KP_MDWRKR_ORGNSTRSCHNHD_ID NUMBER PRIMARY KEY,
    MEDEWERKER_ID NUMBER,
    ORGANISATORISCHEEENHEID_ID NUMBER
);

CREATE TABLE FORMULIERVERLENGINGINHUUR (
    FORMULIERVERLENGINGINHUUR_ID NUMBER PRIMARY KEY,
    AANVRAGER_MEDEWERKER_ID NUMBER,
    BETREFT_INKOOPORDER_ID NUMBER,
    BETREFT_MEDEWERKER_ID NUMBER,
    DATUMEINDENIEUW DATE,
    INDICATIEREDENINHUURGEWIJZIGD NUMBER(1),
    INDICATIEVERHOGENINKOOPORDER NUMBER(1),
    INGEHUURD_VIA_LEVERANCIER_ID NUMBER,
    TOELICHTING CLOB
);

CREATE TABLE KP_KSTNPLTS_INKPRDR (
    KP_KSTNPLTS_INKPRDR_ID NUMBER PRIMARY KEY,
    KOSTENPLAATS_ID NUMBER,
    INKOOPORDER_ID NUMBER
);

CREATE TABLE KP_FRMLRVRLNGNGNHR_DCMNT (
    KP_FRMLRVRLNGNGNHR_DCMNT_ID NUMBER PRIMARY KEY,
    FORMULIERVERLENGINGINHUUR_ID NUMBER,
    DOCUMENT_ID NUMBER
);

ALTER TABLE KP_FRMLRVRLNGNGNHR_DCMNT ADD CONSTRAINT FK_KP_FRMLRVRLNGNGNHR_DCMNT_1 FOREIGN KEY (FORMULIERVERLENGINGINHUUR_ID) REFERENCES FORMULIERVERLENGINGINHUUR (FORMULIERVERLENGINGINHUUR_ID);
-- FORMULIERVERLENGINGINHUUR (many-to-many junction, Connector_ID: 101)

ALTER TABLE KP_FRMLRVRLNGNGNHR_DCMNT ADD CONSTRAINT FK_KP_FRMLRVRLNGNGNHR_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 101)

ALTER TABLE KP_CNTRCT_DCMNT ADD CONSTRAINT FK_KP_CNTRCT_DCMNT_1 FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID);
-- CONTRACT (many-to-many junction, Connector_ID: 103)

ALTER TABLE KP_CNTRCT_DCMNT ADD CONSTRAINT FK_KP_CNTRCT_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 103)

ALTER TABLE KP_KSTNPLTS_INKPRDR ADD CONSTRAINT FK_KP_KSTNPLTS_INKPRDR_1 FOREIGN KEY (KOSTENPLAATS_ID) REFERENCES KOSTENPLAATS (KOSTENPLAATS_ID);
-- KOSTENPLAATS (many-to-many junction, Connector_ID: 492)

ALTER TABLE KP_KSTNPLTS_INKPRDR ADD CONSTRAINT FK_KP_KSTNPLTS_INKPRDR_2 FOREIGN KEY (INKOOPORDER_ID) REFERENCES INKOOPORDER (INKOOPORDER_ID);
-- INKOOPORDER (many-to-many junction, Connector_ID: 492)

ALTER TABLE KP_MDWRKR_ORGNSTRSCHNHD ADD CONSTRAINT FK_KP_MDWRKR_ORGNSTRSCHNHD_1 FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- MEDEWERKER (many-to-many junction, Connector_ID: 2175)

ALTER TABLE KP_MDWRKR_ORGNSTRSCHNHD ADD CONSTRAINT FK_KP_MDWRKR_ORGNSTRSCHNHD_2 FOREIGN KEY (ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- ORGANISATORISCHEEENHEID (many-to-many junction, Connector_ID: 2175)

ALTER TABLE FORMULIERVERLENGINGINHUUR ADD CONSTRAINT FK_FORMULIERVERLENGINGINHUUR_BETREFT FOREIGN KEY (BETREFT_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- BETREFT (0..* to 1, Connector_ID: 399)

ALTER TABLE FORMULIERVERLENGINGINHUUR ADD CONSTRAINT FK_FORMULIERVERLENGINGINHUUR_INGEHUURD_VIA FOREIGN KEY (INGEHUURD_VIA_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- INGEHUURD_VIA (0..* to 1, Connector_ID: 400)

ALTER TABLE FORMULIERVERLENGINGINHUUR ADD CONSTRAINT FK_FORMULIERVERLENGINGINHUUR_AANVRAGER FOREIGN KEY (AANVRAGER_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- AANVRAGER (0..* to 1, Connector_ID: 401)

ALTER TABLE CONTRACT ADD CONSTRAINT FK_CONTRACT_CONTRACTANT FOREIGN KEY (CONTRACTANT_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- CONTRACTANT (1 to 0..*, Connector_ID: 404)

ALTER TABLE CONTRACT ADD CONSTRAINT FK_CONTRACT_BOVENLIGGEND FOREIGN KEY (BOVENLIGGEND_CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID);
-- BOVENLIGGEND (0..* to 0..1, Connector_ID: 405)

ALTER TABLE FORMULIERVERLENGINGINHUUR ADD CONSTRAINT FK_FORMULIERVERLENGINGINHUUR_BETREFT_2 FOREIGN KEY (BETREFT_INKOOPORDER_ID) REFERENCES INKOOPORDER (INKOOPORDER_ID);
-- BETREFT (0..* to 1, Connector_ID: 491)

ALTER TABLE INKOOPORDER ADD CONSTRAINT FK_INKOOPORDER_OORSPRONKELIJK FOREIGN KEY (OORSPRONKELIJK_INKOOPORDER_ID) REFERENCES INKOOPORDER (INKOOPORDER_ID);
-- OORSPRONKELIJK (0..1 to 0..1, Connector_ID: 493)

ALTER TABLE INKOOPORDER ADD CONSTRAINT FK_INKOOPORDER_GERELATEERD FOREIGN KEY (GERELATEERD_INKOOPORDER_ID) REFERENCES INKOOPORDER (INKOOPORDER_ID);
-- GERELATEERD (0..1 to 0..*, Connector_ID: 494)

ALTER TABLE INKOOPORDER ADD CONSTRAINT FK_INKOOPORDER_BETREFT FOREIGN KEY (BETREFT_CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID);
-- BETREFT (0..1 to 1, Connector_ID: 495)

ALTER TABLE INKOOPORDER ADD CONSTRAINT FK_INKOOPORDER_VERPLICHTING_AAN FOREIGN KEY (VERPLICHTING_AAN_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- VERPLICHTING_AAN (0..* to 1, Connector_ID: 496)

ALTER TABLE ORGANISATORISCHEEENHEID ADD CONSTRAINT FK_ORGANISATORISCHEEENHEID_IS_DEEL_VAN FOREIGN KEY (IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_DEEL_VAN (1 to 0..1, Connector_ID: 2059)

ALTER TABLE ORGANISATORISCHEEENHEID ADD CONSTRAINT FK_ORGANISATORISCHEEENHEID_HEEFT FOREIGN KEY (HEEFT_KOSTENPLAATS_ID) REFERENCES KOSTENPLAATS (KOSTENPLAATS_ID);
-- HEEFT (0..1 to 1, Connector_ID: 2063)

ALTER TABLE MEDEWERKER ADD CONSTRAINT FK_MEDEWERKER_IS_VERANTWOORDELIJK_VOOR FOREIGN KEY (IS_VERANTWOORDELIJK_VOOR_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_VERANTWOORDELIJK_VOOR (0..1 to 0..1, Connector_ID: 2166)

ALTER TABLE MEDEWERKER ADD CONSTRAINT FK_MEDEWERKER_IS_CONTACTPERSOON_VOOR FOREIGN KEY (IS_CONTACTPERSOON_VOOR_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_CONTACTPERSOON_VOOR (0..1 to 0..1, Connector_ID: 2185)

ALTER TABLE MEDEWERKER ADD CONSTRAINT FK_MEDEWERKER_GELEVERD_VIA FOREIGN KEY (GELEVERD_VIA_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- GELEVERD_VIA (0..* to 0..1, Connector_ID: 2194)

