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

CREATE TABLE SUBSIDIECOMPONENT (
    SUBSIDIECOMPONENT_ID NUMBER PRIMARY KEY,
    GERESERVEERDBEDRAG NUMBER(10,2),
    HEEFT_KOSTENPLAATS_ID NUMBER,
    TOEGEKENDBEDRAG NUMBER(10,2)
);

CREATE TABLE MUTATIE (
    MUTATIE_ID NUMBER PRIMARY KEY,
    BEDRAG NUMBER(10,2),
    DATUM DATE,
    HEEFT_BETREKKING_OP_KOSTENPLAATS_ID NUMBER
);

CREATE TABLE BETAALMOMENT (
    BETAALMOMENT_ID NUMBER PRIMARY KEY,
    BEDRAG NUMBER(10,2),
    DATUM DATE,
    HEEFT_SUBSIDIECOMPONENT_ID NUMBER,
    VOORSCHOT NUMBER(1)
);

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)

