CREATE TABLE `DOCUMENT` (
    `DOCUMENT_ID` INT PRIMARY KEY,
    `COCUMENTBESCHRIJVING` VARCHAR(255),
    `DATUMCREATIEDOCUMENT` DATE,
    `DATUMONTVANGSTDOCUMENT` DATE,
    `DATUMVERZENDINGDOCUMENT` DATE,
    `DOCUMENTAUTEUR` VARCHAR(200),
    `DOCUMENTIDENTIFICATIE` VARCHAR(255),
    `DOCUMENTTITEL` VARCHAR(200),
    `VERTROUWELIJKAANDUIDING` VARCHAR(20)
) ENGINE=InnoDB;

CREATE TABLE `KOSTENPLAATS` (
    `KOSTENPLAATS_ID` INT PRIMARY KEY,
    `BTWCODE` VARCHAR(255),
    `BTWOMSCHRIJVING` VARCHAR(80),
    `KOSTENPLAATSSOORTCODE` DECIMAL(10,2),
    `KOSTENPLAATSSOORTOMSCHRIJVING` DECIMAL(10,2),
    `KOSTENPLAATSTYPECODE` DECIMAL(10,2),
    `KOSTENPLAATSTYPEOMSCHRIJVING` DECIMAL(10,2),
    `NAAM` VARCHAR(80),
    `OMSCHRIJVING` VARCHAR(200)
) ENGINE=InnoDB;

CREATE TABLE `LEVERANCIER` (
    `LEVERANCIER_ID` INT PRIMARY KEY,
    `NAAM` VARCHAR(200),
    `NUMMER` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `ORGANISATORISCHEEENHEID` (
    `ORGANISATORISCHEEENHEID_ID` INT PRIMARY KEY,
    `DATUMONTSTAAN` DATE,
    `DATUMOPHEFFING` DATE,
    `EMAILADRES` VARCHAR(255),
    `FAXNUMMER` VARCHAR(20),
    `FORMATIE` VARCHAR(255),
    `HEEFT_KOSTENPLAATS_ID` INT,
    `IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID` INT,
    `NAAM` VARCHAR(50),
    `NAAMVERKORT` VARCHAR(255),
    `OMSCHRIJVING` VARCHAR(80),
    `ORGANISATIEIDENTIFICATIE` VARCHAR(255),
    `TELEFOONNUMMER` VARCHAR(20),
    `TOELICHTING` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `CONTRACT` (
    `CONTRACT_ID` INT PRIMARY KEY,
    `AUTORISATIEGROEP` VARCHAR(200),
    `BESCHRIJVING` TEXT,
    `BOVENLIGGEND_CONTRACT_ID` INT,
    `CATEGORIE` VARCHAR(80),
    `CLASSIFICATIE` VARCHAR(80),
    `CONTRACTANT_LEVERANCIER_ID` INT,
    `CONTRACTREVISIE` INT,
    `DATUMCREATIE` DATE,
    `DATUMEINDE` DATE,
    `DATUMSTART` DATE,
    `GROEP` VARCHAR(80),
    `INTERNCONTRACTID` VARCHAR(255),
    `INTERNCONTRACTREVISIE` INT,
    `OPMERKINGEN` TEXT,
    `STATUS` VARCHAR(80),
    `TYPE` VARCHAR(80),
    `VOORWAARDE` VARCHAR(80),
    `ZOEKWOORDEN` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `MEDEWERKER` (
    `MEDEWERKER_ID` INT PRIMARY KEY,
    `ACHTERNAAM` VARCHAR(200),
    `DATUMINDIENST` DATE,
    `DATUMUITDIENST` DATE,
    `EMAILADRES` VARCHAR(255),
    `EXTERN` BOOLEAN,
    `FUNCTIE` VARCHAR(50),
    `GELEVERD_VIA_LEVERANCIER_ID` INT,
    `GESLACHTSAANDUIDING` VARCHAR(255),
    `IS_CONTACTPERSOON_VOOR_ORGANISATORISCHEEENHEID_ID` INT,
    `IS_VERANTWOORDELIJK_VOOR_ORGANISATORISCHEEENHEID_ID` INT,
    `MEDEWERKERIDENTIFICATIE` VARCHAR(255),
    `MEDEWERKERTOELICHTING` VARCHAR(255),
    `ROEPNAAM` VARCHAR(255),
    `TELEFOONNUMMER` VARCHAR(20),
    `VOORLETTERS` VARCHAR(20),
    `VOORVOEGSELACHTERNAAM` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `INKOOPORDER` (
    `INKOOPORDER_ID` INT PRIMARY KEY,
    `ARTIKELCODE` VARCHAR(80),
    `BETALINGMEERDEREJAREN` BOOLEAN,
    `BETREFT` VARCHAR(255),
    `BETREFT_CONTRACT_ID` INT,
    `DATUMEINDE` DATE,
    `DATUMINGEDIEND` DATE,
    `DATUMSTART` DATE,
    `GERELATEERD_INKOOPORDER_ID` INT,
    `GOEDERENCODE` VARCHAR(80),
    `OMSCHRIJVING` VARCHAR(255),
    `OORSPRONKELIJK_INKOOPORDER_ID` INT,
    `ORDERNUMMER` VARCHAR(255),
    `SALDO` VARCHAR(255),
    `TOTAALNETTOBEDRAG` DECIMAL(10,2),
    `VERPLICHTING_AAN_LEVERANCIER_ID` INT,
    `WIJZEVANAANBESTEDEN` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `KP_CNTRCT_DCMNT` (
    `KP_CNTRCT_DCMNT_ID` INT PRIMARY KEY,
    `CONTRACT_ID` INT,
    `DOCUMENT_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_MDWRKR_ORGNSTRSCHNHD` (
    `KP_MDWRKR_ORGNSTRSCHNHD_ID` INT PRIMARY KEY,
    `MEDEWERKER_ID` INT,
    `ORGANISATORISCHEEENHEID_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `FORMULIERVERLENGINGINHUUR` (
    `FORMULIERVERLENGINGINHUUR_ID` INT PRIMARY KEY,
    `AANVRAGER_MEDEWERKER_ID` INT,
    `BETREFT_INKOOPORDER_ID` INT,
    `BETREFT_MEDEWERKER_ID` INT,
    `DATUMEINDENIEUW` DATE,
    `INDICATIEREDENINHUURGEWIJZIGD` BOOLEAN,
    `INDICATIEVERHOGENINKOOPORDER` BOOLEAN,
    `INGEHUURD_VIA_LEVERANCIER_ID` INT,
    `TOELICHTING` TEXT
) ENGINE=InnoDB;

CREATE TABLE `KP_KSTNPLTS_INKPRDR` (
    `KP_KSTNPLTS_INKPRDR_ID` INT PRIMARY KEY,
    `KOSTENPLAATS_ID` INT,
    `INKOOPORDER_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_FRMLRVRLNGNGNHR_DCMNT` (
    `KP_FRMLRVRLNGNGNHR_DCMNT_ID` INT PRIMARY KEY,
    `FORMULIERVERLENGINGINHUUR_ID` INT,
    `DOCUMENT_ID` INT
) ENGINE=InnoDB;

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)

