CREATE TABLE [SUBSIDIEPROGRAMMA] (
    [SUBSIDIEPROGRAMMA_ID] INT PRIMARY KEY,
    [DATUMEINDE] DATE,
    [DATUMSTART] DATE,
    [NAAM] VARCHAR(200),
    [OMSCHRIJVING] NVARCHAR(MAX),
    [PROGRAMMABEGROTING] VARCHAR(255)
);

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)
);

CREATE TABLE [SUBSIDIE] (
    [SUBSIDIE_ID] INT PRIMARY KEY,
    [ACCOUNTANTSCONTROLE] BIT,
    [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] NVARCHAR(MAX),
    [OPMERKINGENVOORSCHOTTEN] NVARCHAR(MAX),
    [PRESTATIESUBSIDIE] BIT,
    [SOCIALRETURNBEDRAG] DECIMAL(10,2),
    [SOCIALRETURNNAGEKOMEN] BIT,
    [SOCIALRETURNVERPLICHTING] BIT,
    [STATUS] VARCHAR(80),
    [SUBSIDIEBEDRAG] DECIMAL(10,2),
    [SUBSIDIESOORT] VARCHAR(80),
    [SUBSIDIEVASTSTELLINGBEDRAG] DECIMAL(10,2),
    [UITGAANDESUBSIDIE] BIT,
    [VERANTWOORDENOP] DATE
);

CREATE TABLE [SUBSIDIECOMPONENT] (
    [SUBSIDIECOMPONENT_ID] INT PRIMARY KEY,
    [GERESERVEERDBEDRAG] DECIMAL(10,2),
    [HEEFT_KOSTENPLAATS_ID] INT,
    [TOEGEKENDBEDRAG] DECIMAL(10,2)
);

CREATE TABLE [MUTATIE] (
    [MUTATIE_ID] INT PRIMARY KEY,
    [BEDRAG] DECIMAL(10,2),
    [DATUM] DATE,
    [HEEFT_BETREKKING_OP_KOSTENPLAATS_ID] INT
);

CREATE TABLE [BETAALMOMENT] (
    [BETAALMOMENT_ID] INT PRIMARY KEY,
    [BEDRAG] DECIMAL(10,2),
    [DATUM] DATE,
    [HEEFT_SUBSIDIECOMPONENT_ID] INT,
    [VOORSCHOT] BIT
);

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)

