CREATE TABLE `UITKERINGSRUN` (
    `UITKERINGSRUN_ID` INT PRIMARY KEY,
    `DATUMRUN` DATE,
    `FREQUENTIE` VARCHAR(255),
    `PERIODERUN` VARCHAR(255),
    `SOORTRUN` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `COMPONENTSOORT` (
    `COMPONENTSOORT_ID` INT PRIMARY KEY,
    `COMPONENTCODE` VARCHAR(255),
    `KOLOM` VARCHAR(255),
    `KOLOMCODE` VARCHAR(255),
    `OMSCHRIJVING` VARCHAR(255),
    `REGELING` VARCHAR(255),
    `REGELINGCODE` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `REGELINGSOORT` (
    `REGELINGSOORT_ID` INT PRIMARY KEY,
    `NAAM` VARCHAR(255),
    `OMSCHRIJVING` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `INKOMENSVOORZIENINGSOORT` (
    `INKOMENSVOORZIENINGSOORT_ID` INT PRIMARY KEY,
    `CODE` VARCHAR(255),
    `NAAM` VARCHAR(255),
    `OMSCHRIJVING` VARCHAR(255),
    `REGELING` VARCHAR(255),
    `REGELINGSCODE` VARCHAR(255),
    `VERGOEDING` VARCHAR(255),
    `VERGOEDINGSCODE` VARCHAR(255),
    `WET` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `INKOMENSVOORZIENING` (
    `INKOMENSVOORZIENING_ID` INT PRIMARY KEY,
    `ADMINISTRATIEVEEINDDATUM` DATE,
    `ADMINISTRATIEVESTARTDATUM` DATE,
    `BEDRAG` DECIMAL(10,2),
    `BETALINGSMOMENTCODE` VARCHAR(255),
    `CODE` VARCHAR(255),
    `DATUMTOEKENNING` DATE,
    `EENMALIG` BOOLEAN,
    `EINDDATUM` DATE,
    `GROEP` VARCHAR(255),
    `INDICATIEBLOKKERING` BOOLEAN,
    `INDICATIESTUDIETOESLAG` BOOLEAN,
    `INDICATIEUITKERINGSPLITSEN` BOOLEAN,
    `INDICATIEUITKERINGSSPECIFICATIE` BOOLEAN,
    `INGANGSDATUM` DATE,
    `IS_SOORT_VOORZIENING_INKOMENSVOORZIENINGSOORT_ID` INT,
    `TOEKENNINGSDATUM` DATE,
    `VERSTERKKINGSVORM` VARCHAR(255),
    `VERWERKTTOTENMETDATUM` DATE
) ENGINE=InnoDB;

CREATE TABLE `CLIENT` (
    `CLIENT_ID` INT PRIMARY KEY,
    `CODE` VARCHAR(80),
    `GEZAGSDRAGERGEKEND` BOOLEAN,
    `HEEFT_VOORZIENING_INKOMENSVOORZIENING_ID` INT,
    `IS_PARTNER_VAN_INKOMENSVOORZIENING_ID` INT,
    `JURIDISCHESTATUS` VARCHAR(80),
    `WETTELIJKEVERTEGENWOORDIGING` VARCHAR(80)
) ENGINE=InnoDB;

CREATE TABLE `COMPONENT` (
    `COMPONENT_ID` INT PRIMARY KEY,
    `BEDRAG` DECIMAL(10,2),
    `BEGINDATUMBETREKKINGOP` DATE,
    `DEBETCREDIT` VARCHAR(255),
    `EINDATUMBETREKKINGOP` DATE,
    `GROEP` VARCHAR(255),
    `GROEPCODE` VARCHAR(255),
    `GROOTBOEKCODE` VARCHAR(255),
    `GROOTBOEKOMSCHRIJVING` VARCHAR(255),
    `HEEFT_UITKERINGSRUN_ID` INT,
    `IS_OPGEBOUWD_UIT_INKOMENSVOORZIENING_ID` INT,
    `IS_VAN_SOORT_COMPONENTSOORT_ID` INT,
    `KOSTENPLAATS` DECIMAL(10,2),
    `OMSCHRIJVING` VARCHAR(255),
    `REKENINGNUMMER` VARCHAR(255),
    `TOELICHTING` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `KP_CLNT_INKMNSVRZNNG` (
    `KP_CLNT_INKMNSVRZNNG_ID` INT PRIMARY KEY,
    `CLIENT_ID` INT,
    `INKOMENSVOORZIENING_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `REGELING` (
    `REGELING_ID` INT PRIMARY KEY,
    `EINDDATUM` DATE,
    `HEEFT_REGELING_CLIENT_ID` INT,
    `IS_REGELINGSOORT_REGELINGSOORT_ID` INT,
    `OMSCHRIJVING` VARCHAR(255),
    `STARTDATUM` DATE,
    `TOEKENNINGSDATUM` DATE
) ENGINE=InnoDB;

ALTER TABLE `KP_CLNT_INKMNSVRZNNG` ADD CONSTRAINT FK_KP_CLNT_INKMNSVRZNNG_1 FOREIGN KEY (`CLIENT_ID`) REFERENCES `CLIENT` (`CLIENT_ID`);
-- CLIENT (many-to-many junction, Connector_ID: 1707)

ALTER TABLE `KP_CLNT_INKMNSVRZNNG` ADD CONSTRAINT FK_KP_CLNT_INKMNSVRZNNG_2 FOREIGN KEY (`INKOMENSVOORZIENING_ID`) REFERENCES `INKOMENSVOORZIENING` (`INKOMENSVOORZIENING_ID`);
-- INKOMENSVOORZIENING (many-to-many junction, Connector_ID: 1707)

ALTER TABLE `REGELING` ADD CONSTRAINT FK_REGELING_HEEFT_REGELING FOREIGN KEY (`HEEFT_REGELING_CLIENT_ID`) REFERENCES `CLIENT` (`CLIENT_ID`);
-- HEEFT_REGELING (1 to 0..*, Connector_ID: 1701)

ALTER TABLE `REGELING` ADD CONSTRAINT FK_REGELING_IS_REGELINGSOORT FOREIGN KEY (`IS_REGELINGSOORT_REGELINGSOORT_ID`) REFERENCES `REGELINGSOORT` (`REGELINGSOORT_ID`);
-- IS_REGELINGSOORT (0..* to 1, Connector_ID: 1703)

ALTER TABLE `CLIENT` ADD CONSTRAINT FK_CLIENT_HEEFT_VOORZIENING FOREIGN KEY (`HEEFT_VOORZIENING_INKOMENSVOORZIENING_ID`) REFERENCES `INKOMENSVOORZIENING` (`INKOMENSVOORZIENING_ID`);
-- HEEFT_VOORZIENING (1 to 1, Connector_ID: 1704)

ALTER TABLE `INKOMENSVOORZIENING` ADD CONSTRAINT FK_INKOMENSVOORZIENING_IS_SOORT_VOORZIENING FOREIGN KEY (`IS_SOORT_VOORZIENING_INKOMENSVOORZIENINGSOORT_ID`) REFERENCES `INKOMENSVOORZIENINGSOORT` (`INKOMENSVOORZIENINGSOORT_ID`);
-- IS_SOORT_VOORZIENING (1 to 0..*, Connector_ID: 1705)

ALTER TABLE `CLIENT` ADD CONSTRAINT FK_CLIENT_IS_PARTNER_VAN FOREIGN KEY (`IS_PARTNER_VAN_INKOMENSVOORZIENING_ID`) REFERENCES `INKOMENSVOORZIENING` (`INKOMENSVOORZIENING_ID`);
-- IS_PARTNER_VAN (0 to 1, Connector_ID: 1709)

ALTER TABLE `COMPONENT` ADD CONSTRAINT FK_COMPONENT_IS_OPGEBOUWD_UIT FOREIGN KEY (`IS_OPGEBOUWD_UIT_INKOMENSVOORZIENING_ID`) REFERENCES `INKOMENSVOORZIENING` (`INKOMENSVOORZIENING_ID`);
-- IS_OPGEBOUWD_UIT (1 to 1..*, Connector_ID: 1714)

ALTER TABLE `COMPONENT` ADD CONSTRAINT FK_COMPONENT_HEEFT FOREIGN KEY (`HEEFT_UITKERINGSRUN_ID`) REFERENCES `UITKERINGSRUN` (`UITKERINGSRUN_ID`);
-- HEEFT (1..* to 1, Connector_ID: 1715)

ALTER TABLE `COMPONENT` ADD CONSTRAINT FK_COMPONENT_IS_VAN_SOORT FOREIGN KEY (`IS_VAN_SOORT_COMPONENTSOORT_ID`) REFERENCES `COMPONENTSOORT` (`COMPONENTSOORT_ID`);
-- IS_VAN_SOORT (1..* to 1, Connector_ID: 1716)

