CREATE TABLE `SUBSIDIEPROGRAMMA` (
    `SUBSIDIEPROGRAMMA_ID` INT PRIMARY KEY,
    `DATUMEINDE` DATE,
    `DATUMSTART` DATE,
    `NAAM` VARCHAR(200),
    `OMSCHRIJVING` TEXT,
    `PROGRAMMABEGROTING` VARCHAR(255)
) 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 `SUBSIDIE` (
    `SUBSIDIE_ID` INT PRIMARY KEY,
    `ACCOUNTANTSCONTROLE` BOOLEAN,
    `COFINANCIERING` VARCHAR(255),
    `DATUMBEHANDELTERMIJN` DATE,
    `DATUMBEWAARTERMIJN` DATE,
    `DATUMEINDE` DATE,
    `DATUMSTART` DATE,
    `DATUMSUBSIDIEVASTSTELLING` DATE,
    `DATUMVERZENDINGEINDEAFREKENING` DATE,
    `DEADLINEINDIENING` DATE,
    `DOELSTELLING` VARCHAR(200),
    `GAAT_OVER_SUBSIDIEPROGRAMMA_ID` INT,
    `GEREALISEERDEPROJECTKOSTEN` DECIMAL(10,2),
    `HEEFT_KOSTENPLAATS_ID` INT,
    `HOOGTESUBSIDIE` VARCHAR(255),
    `NIVEAU` VARCHAR(255),
    `ONDERWERP` VARCHAR(200),
    `ONTVANGENBEDRAG` DECIMAL(10,2),
    `OPMERKINGEN` TEXT,
    `OPMERKINGENVOORSCHOTTEN` TEXT,
    `PRESTATIESUBSIDIE` BOOLEAN,
    `SOCIALRETURNBEDRAG` DECIMAL(10,2),
    `SOCIALRETURNNAGEKOMEN` BOOLEAN,
    `SOCIALRETURNVERPLICHTING` BOOLEAN,
    `STATUS` VARCHAR(80),
    `SUBSIDIEBEDRAG` DECIMAL(10,2),
    `SUBSIDIESOORT` VARCHAR(80),
    `SUBSIDIEVASTSTELLINGBEDRAG` DECIMAL(10,2),
    `UITGAANDESUBSIDIE` BOOLEAN,
    `VERANTWOORDENOP` DATE
) ENGINE=InnoDB;

CREATE TABLE `SUBSIDIECOMPONENT` (
    `SUBSIDIECOMPONENT_ID` INT PRIMARY KEY,
    `GERESERVEERDBEDRAG` DECIMAL(10,2),
    `HEEFT_KOSTENPLAATS_ID` INT,
    `TOEGEKENDBEDRAG` DECIMAL(10,2)
) ENGINE=InnoDB;

CREATE TABLE `MUTATIE` (
    `MUTATIE_ID` INT PRIMARY KEY,
    `BEDRAG` DECIMAL(10,2),
    `DATUM` DATE,
    `HEEFT_BETREKKING_OP_KOSTENPLAATS_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `BETAALMOMENT` (
    `BETAALMOMENT_ID` INT PRIMARY KEY,
    `BEDRAG` DECIMAL(10,2),
    `DATUM` DATE,
    `HEEFT_SUBSIDIECOMPONENT_ID` INT,
    `VOORSCHOT` BOOLEAN
) ENGINE=InnoDB;

ALTER TABLE `MUTATIE` ADD CONSTRAINT FK_MUTATIE_HEEFT_BETREKKING_OP FOREIGN KEY (`HEEFT_BETREKKING_OP_KOSTENPLAATS_ID`) REFERENCES `KOSTENPLAATS` (`KOSTENPLAATS_ID`);
-- HEEFT_BETREKKING_OP (0..* to 1, Connector_ID: 483)

ALTER TABLE `SUBSIDIECOMPONENT` ADD CONSTRAINT FK_SUBSIDIECOMPONENT_HEEFT FOREIGN KEY (`HEEFT_KOSTENPLAATS_ID`) REFERENCES `KOSTENPLAATS` (`KOSTENPLAATS_ID`);
-- HEEFT (0..* to 1, Connector_ID: 591)

ALTER TABLE `SUBSIDIE` ADD CONSTRAINT FK_SUBSIDIE_GAAT_OVER FOREIGN KEY (`GAAT_OVER_SUBSIDIEPROGRAMMA_ID`) REFERENCES `SUBSIDIEPROGRAMMA` (`SUBSIDIEPROGRAMMA_ID`);
-- GAAT_OVER (0..1 to 1..*, Connector_ID: 593)

ALTER TABLE `SUBSIDIE` ADD CONSTRAINT FK_SUBSIDIE_HEEFT FOREIGN KEY (`HEEFT_KOSTENPLAATS_ID`) REFERENCES `KOSTENPLAATS` (`KOSTENPLAATS_ID`);
-- HEEFT (0..* to 0..1, Connector_ID: 600)

ALTER TABLE `BETAALMOMENT` ADD CONSTRAINT FK_BETAALMOMENT_HEEFT FOREIGN KEY (`HEEFT_SUBSIDIECOMPONENT_ID`) REFERENCES `SUBSIDIECOMPONENT` (`SUBSIDIECOMPONENT_ID`);
-- HEEFT (1 to 1..*, Connector_ID: 608)

