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 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 KANDIDAAT (
    KANDIDAAT_ID NUMBER PRIMARY KEY,
    BETREFT_NATUURLIJKPERSOON_ID NUMBER,
    BIEDT_AAN_LEVERANCIER_ID NUMBER,
    DATUMINGESTUURD DATE,
    INGEDIEND_VOOR_AANBESTEDING_INHUUR_ID NUMBER
);

CREATE TABLE GUNNING (
    GUNNING_ID NUMBER PRIMARY KEY,
    BERICHT VARCHAR2(255),
    BETREFT_KANDIDAAT_ID NUMBER,
    DATUMGUNNING DATE,
    DATUMPUBLICATIE DATE,
    DATUMVOORLOPIGEGUNNING DATE,
    GEGUNDEPRIJS NUMBER(10,2),
    INHUUR_MEDEWERKER_ID NUMBER
);

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

CREATE TABLE KP_FRMLRNHR_DCMNT (
    KP_FRMLRNHR_DCMNT_ID NUMBER PRIMARY KEY,
    FORMULIERINHUUR_ID NUMBER,
    DOCUMENT_ID NUMBER
);

CREATE TABLE KP_LVRNCR_CTGR (
    KP_LVRNCR_CTGR_ID NUMBER PRIMARY KEY,
    LEVERANCIER_ID NUMBER,
    CATEGORIE_ID NUMBER
);

CREATE TABLE CATEGORIE (
    CATEGORIE_ID NUMBER PRIMARY KEY,
    CODE VARCHAR2(80),
    OMSCHRIJVING VARCHAR2(255)
);

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 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 KP_ANBSTDNG_INHR_DCMNT (
    KP_ANBSTDNG_INHR_DCMNT_ID NUMBER PRIMARY KEY,
    AANBESTEDING_INHUUR_ID NUMBER,
    DOCUMENT_ID NUMBER
);

CREATE TABLE NATUURLIJKPERSOON (
    NATUURLIJKPERSOON_ID NUMBER PRIMARY KEY,
    AANDUIDINGNAAMGEBRUIK VARCHAR2(50),
    AANHEFAANSCHRIJVING VARCHAR2(50),
    ACADEMISCHETITEL VARCHAR2(80),
    ACHTERNAAM VARCHAR2(100),
    ADELLIJKETITELOFPREDIKAAT VARCHAR2(255),
    ANUMMER VARCHAR2(20),
    BIJZONDERNEDERLANDERSCHAP VARCHAR2(50),
    BURGERSERVICENUMMER VARCHAR2(255),
    DATUMGEBOORTE DATE,
    DATUMOVERLIJDEN DATE,
    GEBOORTELAND VARCHAR2(255),
    GEBOORTEPLAATS VARCHAR2(200),
    GESLACHTSAANDUIDING VARCHAR2(255),
    GESLACHTSNAAM VARCHAR2(200),
    GESLACHTSNAAMAANSCHRIJVING VARCHAR2(200),
    HANDLICHTING VARCHAR2(50),
    INDICATIEAFSCHERMINGPERSOONSGEGEVENS NUMBER(1),
    INDICATIEOVERLEDEN NUMBER(1),
    LANDOVERLIJDEN VARCHAR2(255),
    NATIONALITEIT VARCHAR2(100),
    OVERLIJDENSPLAATS VARCHAR2(200),
    VOORLETTERSAANSCHRIJVING VARCHAR2(20),
    VOORNAMEN VARCHAR2(200),
    VOORNAMENAANSCHRIJVING VARCHAR2(200),
    VOORVOEGSELGESLACHTSNAAM VARCHAR2(80)
);

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 KP_MDWRKR_ORGNSTRSCHNHD (
    KP_MDWRKR_ORGNSTRSCHNHD_ID NUMBER PRIMARY KEY,
    MEDEWERKER_ID NUMBER,
    ORGANISATORISCHEEENHEID_ID NUMBER
);

CREATE TABLE AANBESTEDING_INHUUR (
    AANBESTEDING_INHUUR_ID NUMBER PRIMARY KEY,
    AANVRAAGGESLOTEN VARCHAR2(255),
    AANVRAAGNUMMER VARCHAR2(80),
    DATUMCREATIE DATE,
    DATUMOPENINGKLUIS DATE,
    DATUMSLUITING DATE,
    DATUMVERZENDING DATE,
    EIGENAAR_MEDEWERKER_ID NUMBER,
    FASE VARCHAR2(80),
    HOOGSTETARIEF NUMBER(10,2),
    LAAGSTETARIEF NUMBER(10,2),
    MONDT_UIT_GUNNING_ID NUMBER,
    OMSCHRIJVING CLOB,
    PERCEEL VARCHAR2(80),
    PROCEDURE VARCHAR2(80),
    PROJECTNAAM VARCHAR2(200),
    PROJECTREFERENTIE VARCHAR2(255),
    PUBLICATIE VARCHAR2(80),
    REFERENTIE VARCHAR2(80),
    STATUS VARCHAR2(80),
    TITEL VARCHAR2(200),
    TYPE VARCHAR2(255),
    VALT_BINNEN_CATEGORIE_ID NUMBER
);

CREATE TABLE UITNODIGING (
    UITNODIGING_ID NUMBER PRIMARY KEY,
    AFGEWEZEN NUMBER(1),
    BETREFT_AANBESTEDING_INHUUR_ID NUMBER,
    DATUM DATE,
    GEACCEPTEERD NUMBER(1),
    GERICHT_AAN_LEVERANCIER_ID NUMBER
);

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 FORMULIERINHUUR (
    FORMULIERINHUUR_ID NUMBER PRIMARY KEY,
    AANVRAGER_MEDEWERKER_ID NUMBER,
    AKKOORDFINANCIEELADVISEUR NUMBER(1),
    AKKOORDHRADVISEUR NUMBER(1),
    DATUMINGANGINHUUR DATE,
    FUNCTIENAAMINHUUR VARCHAR2(200),
    HEEFT_KOSTENPLAATS_ID NUMBER,
    MONDT_UIT_IN_AANBESTEDING_INHUUR_ID NUMBER
);

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

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

ALTER TABLE KP_FRMLRNHR_DCMNT ADD CONSTRAINT FK_KP_FRMLRNHR_DCMNT_1 FOREIGN KEY (FORMULIERINHUUR_ID) REFERENCES FORMULIERINHUUR (FORMULIERINHUUR_ID);
-- FORMULIERINHUUR (many-to-many junction, Connector_ID: 102)

ALTER TABLE KP_FRMLRNHR_DCMNT ADD CONSTRAINT FK_KP_FRMLRNHR_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 102)

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_ANBSTDNG_INHR_DCMNT ADD CONSTRAINT FK_KP_ANBSTDNG_INHR_DCMNT_1 FOREIGN KEY (AANBESTEDING_INHUUR_ID) REFERENCES AANBESTEDING_INHUUR (AANBESTEDING_INHUUR_ID);
-- AANBESTEDING_INHUUR (many-to-many junction, Connector_ID: 105)

ALTER TABLE KP_ANBSTDNG_INHR_DCMNT ADD CONSTRAINT FK_KP_ANBSTDNG_INHR_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 105)

ALTER TABLE KP_LVRNCR_CTGR ADD CONSTRAINT FK_KP_LVRNCR_CTGR_1 FOREIGN KEY (LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- LEVERANCIER (many-to-many junction, Connector_ID: 406)

ALTER TABLE KP_LVRNCR_CTGR ADD CONSTRAINT FK_KP_LVRNCR_CTGR_2 FOREIGN KEY (CATEGORIE_ID) REFERENCES CATEGORIE (CATEGORIE_ID);
-- CATEGORIE (many-to-many junction, Connector_ID: 406)

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 UITNODIGING ADD CONSTRAINT FK_UITNODIGING_GERICHT_AAN FOREIGN KEY (GERICHT_AAN_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- GERICHT_AAN (0..* to 1, Connector_ID: 389)

ALTER TABLE KANDIDAAT ADD CONSTRAINT FK_KANDIDAAT_BIEDT_AAN FOREIGN KEY (BIEDT_AAN_LEVERANCIER_ID) REFERENCES LEVERANCIER (LEVERANCIER_ID);
-- BIEDT_AAN (1 to 0..*, Connector_ID: 392)

ALTER TABLE KANDIDAAT ADD CONSTRAINT FK_KANDIDAAT_BETREFT FOREIGN KEY (BETREFT_NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID);
-- BETREFT (0..* to 1, Connector_ID: 393)

ALTER TABLE GUNNING ADD CONSTRAINT FK_GUNNING_INHUUR FOREIGN KEY (INHUUR_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- INHUUR (0..* to 0..1, Connector_ID: 395)

ALTER TABLE GUNNING ADD CONSTRAINT FK_GUNNING_BETREFT FOREIGN KEY (BETREFT_KANDIDAAT_ID) REFERENCES KANDIDAAT (KANDIDAAT_ID);
-- BETREFT (0..1 to 1, Connector_ID: 397)

ALTER TABLE FORMULIERINHUUR ADD CONSTRAINT FK_FORMULIERINHUUR_AANVRAGER FOREIGN KEY (AANVRAGER_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- AANVRAGER (0..* to 1, Connector_ID: 402)

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 KANDIDAAT ADD CONSTRAINT FK_KANDIDAAT_INGEDIEND_VOOR FOREIGN KEY (INGEDIEND_VOOR_AANBESTEDING_INHUUR_ID) REFERENCES AANBESTEDING_INHUUR (AANBESTEDING_INHUUR_ID);
-- INGEDIEND_VOOR (0..* to 1, Connector_ID: 414)

ALTER TABLE FORMULIERINHUUR ADD CONSTRAINT FK_FORMULIERINHUUR_MONDT_UIT_IN FOREIGN KEY (MONDT_UIT_IN_AANBESTEDING_INHUUR_ID) REFERENCES AANBESTEDING_INHUUR (AANBESTEDING_INHUUR_ID);
-- MONDT_UIT_IN (0..1 to 0..1, Connector_ID: 415)

ALTER TABLE UITNODIGING ADD CONSTRAINT FK_UITNODIGING_BETREFT FOREIGN KEY (BETREFT_AANBESTEDING_INHUUR_ID) REFERENCES AANBESTEDING_INHUUR (AANBESTEDING_INHUUR_ID);
-- BETREFT (0..* to 1, Connector_ID: 416)

ALTER TABLE AANBESTEDING_INHUUR ADD CONSTRAINT FK_AANBESTEDING_INHUUR_VALT_BINNEN FOREIGN KEY (VALT_BINNEN_CATEGORIE_ID) REFERENCES CATEGORIE (CATEGORIE_ID);
-- VALT_BINNEN (0..* to 1, Connector_ID: 417)

ALTER TABLE AANBESTEDING_INHUUR ADD CONSTRAINT FK_AANBESTEDING_INHUUR_EIGENAAR FOREIGN KEY (EIGENAAR_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- EIGENAAR (0..* to 0..1, Connector_ID: 418)

ALTER TABLE AANBESTEDING_INHUUR ADD CONSTRAINT FK_AANBESTEDING_INHUUR_MONDT_UIT FOREIGN KEY (MONDT_UIT_GUNNING_ID) REFERENCES GUNNING (GUNNING_ID);
-- MONDT_UIT (1 to 0..1, Connector_ID: 420)

ALTER TABLE FORMULIERINHUUR ADD CONSTRAINT FK_FORMULIERINHUUR_HEEFT FOREIGN KEY (HEEFT_KOSTENPLAATS_ID) REFERENCES KOSTENPLAATS (KOSTENPLAATS_ID);
-- HEEFT (0..* to 1, Connector_ID: 485)

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)

