CREATE TABLE BEDRIJFSPROCES (
    BEDRIJFSPROCES_ID INTEGER PRIMARY KEY,
    AFGEROND_ENUM_ID INTEGER,
    DATUM_EIND DATE,
    DATUM_START DATE,
    IS_VAN_BEDRIJFSPROCESTYPE_ID INTEGER,
    NAAM VARCHAR(200),
    OMSCHRIJVING VARCHAR(200)
);

CREATE TABLE ZAAKTYPE (
    ZAAKTYPE_ID INTEGER PRIMARY KEY,
    ARCHIEFCODE VARCHAR(20),
    DATUMBEGINGELDIGHEIDZAAKTYPE DATE,
    DATUMEINDEGELDIGHEIDZAAKTYPE DATE,
    DOORLOOPTIJDBEHANDELING TIMESTAMP,
    HEEFT_BEDRIJFSPROCESTYPE_ID INTEGER,
    HEEFT_PRODUCTTYPE_ID INTEGER,
    INDICATIEPUBLICATIE VARCHAR(255),
    PUBLICATIETEKST VARCHAR(255),
    SERVICENORMBEHANDELING VARCHAR(255),
    TREFWOORD VARCHAR(255),
    VERTROUWELIJKAANDUIDING VARCHAR(20),
    ZAAKCATEGORIE VARCHAR(255),
    ZAAKTYPEOMSCHRIJVING VARCHAR(80),
    ZAAKTYPEOMSCHRIJVINGGENERIEK VARCHAR(80)
);

CREATE TABLE KP_BDRJFSPRCS_ZK (
    KP_BDRJFSPRCS_ZK_ID INTEGER PRIMARY KEY,
    BEDRIJFSPROCES_ID INTEGER,
    ZAAK_ID INTEGER
);

CREATE TABLE DEELPROCESTYPE (
    DEELPROCESTYPE_ID INTEGER PRIMARY KEY,
    IS_DEEL_VAN_BEDRIJFSPROCESTYPE_ID INTEGER,
    OMSCHRIJVING VARCHAR(200)
);

CREATE TABLE PRODUCTTYPE (
    PRODUCTTYPE_ID INTEGER PRIMARY KEY,
    HEEFT_BEDRIJFSPROCESTYPE_ID INTEGER,
    OMSCHRIJVING VARCHAR(200)
);

CREATE TABLE KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN (
    KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN_ID INTEGER PRIMARY KEY,
    IS_ONDERDEEL_VAN_1_ID INTEGER,
    IS_ONDERDEEL_VAN_2_ID INTEGER
);

CREATE TABLE DEELPROCES (
    DEELPROCES_ID INTEGER PRIMARY KEY,
    DATUM_AFGEHANDELD DATE,
    DATUM_GEPLAND DATE,
    IS_DEEL_VAN_BEDRIJFSPROCES_ID INTEGER,
    IS_VAN_DEELPROCESTYPE_ID INTEGER
);

CREATE TABLE BOOLEAN_ENUM (
    BOOLEAN_ENUM_ID INTEGER PRIMARY KEY,
    VALUE VARCHAR(255)
);

INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES
    (1, 'JA'),
    (2, 'LEEG'),
    (3, 'NEE'),
    (4, 'ONBEKEND');

CREATE TABLE BEDRIJFSPROCESTYPE (
    BEDRIJFSPROCESTYPE_ID INTEGER PRIMARY KEY,
    OMSCHRIJVING VARCHAR(200)
);

CREATE TABLE ZAAK (
    ZAAK_ID INTEGER PRIMARY KEY,
    ARCHIEFNOMINATIE VARCHAR(255),
    DATUMEINDE DATE,
    DATUMEINDEGEPLAND DATE,
    DATUMEINDEUITERLIJKEAFDOENING DATE,
    DATUMLAATSTEBETALING DATE,
    DATUMPUBLICATIE DATE,
    DATUMREGISTRATIE DATE,
    DATUMSTART DATE,
    DATUMVERNIETIGINGDOSSIER DATE,
    DUURVERLENGING VARCHAR(255),
    HEEFT_BETREKKING_OP_ANDERE_ZAAK_ID INTEGER,
    HEEFT_PRODUCT_PRODUCTTYPE_ID INTEGER,
    INDICATIEBETALING VARCHAR(255),
    INDICATIEDEELZAKEN_ENUM_ID INTEGER,
    INDICATIEOPSCHORTING VARCHAR(255),
    IS_DEELZAAK_VAN_ZAAK_ID INTEGER,
    IS_VAN_ZAAKTYPE_ID INTEGER,
    LEGES VARCHAR(100),
    OMSCHRIJVING VARCHAR(80),
    OMSCHRIJVINGRESULTAAT VARCHAR(80),
    REDENOPSCHORTING VARCHAR(200),
    REDENVERLENGING VARCHAR(200),
    TOELICHTING VARCHAR(255),
    TOELICHTINGRESULTAAT VARCHAR(255),
    VERTROUWELIJKHEID VARCHAR(255),
    ZAAKIDENTIFICATIE VARCHAR(255),
    ZAAKNIVEAU VARCHAR(255)
);

ALTER TABLE KP_BDRJFSPRCS_ZK ADD CONSTRAINT FK_KP_BDRJFSPRCS_ZK_1 FOREIGN KEY (BEDRIJFSPROCES_ID) REFERENCES BEDRIJFSPROCES (BEDRIJFSPROCES_ID);
-- BEDRIJFSPROCES (many-to-many junction, Connector_ID: 2122)

ALTER TABLE KP_BDRJFSPRCS_ZK ADD CONSTRAINT FK_KP_BDRJFSPRCS_ZK_2 FOREIGN KEY (ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- ZAAK (many-to-many junction, Connector_ID: 2122)

ALTER TABLE KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN ADD CONSTRAINT FK_KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN_1 FOREIGN KEY (IS_ONDERDEEL_VAN_1_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- BEDRIJFSPROCESTYPE (many-to-many junction, Connector_ID: 2200)

ALTER TABLE KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN ADD CONSTRAINT FK_KP_BDRJFSPRCSTYP_IS_ONDRDL_VAN_2 FOREIGN KEY (IS_ONDERDEEL_VAN_2_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- BEDRIJFSPROCESTYPE (many-to-many junction, Connector_ID: 2200)

ALTER TABLE ZAAKTYPE ADD CONSTRAINT FK_ZAAKTYPE_HEEFT FOREIGN KEY (HEEFT_PRODUCTTYPE_ID) REFERENCES PRODUCTTYPE (PRODUCTTYPE_ID);
-- HEEFT (1 to 1, Connector_ID: 2096)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_HEEFT_BETREKKING_OP_ANDERE FOREIGN KEY (HEEFT_BETREKKING_OP_ANDERE_ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- HEEFT_BETREKKING_OP_ANDERE (1 to 0..*, Connector_ID: 2108)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_HEEFT_PRODUCT FOREIGN KEY (HEEFT_PRODUCT_PRODUCTTYPE_ID) REFERENCES PRODUCTTYPE (PRODUCTTYPE_ID);
-- HEEFT_PRODUCT (1 to 1, Connector_ID: 2110)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_IS_VAN FOREIGN KEY (IS_VAN_ZAAKTYPE_ID) REFERENCES ZAAKTYPE (ZAAKTYPE_ID);
-- IS_VAN (0..* to 1, Connector_ID: 2119)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_IS_DEELZAAK_VAN FOREIGN KEY (IS_DEELZAAK_VAN_ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- IS_DEELZAAK_VAN (1 to 0..1, Connector_ID: 2121)

ALTER TABLE DEELPROCES ADD CONSTRAINT FK_DEELPROCES_IS_DEEL_VAN FOREIGN KEY (IS_DEEL_VAN_BEDRIJFSPROCES_ID) REFERENCES BEDRIJFSPROCES (BEDRIJFSPROCES_ID);
-- IS_DEEL_VAN (1.. to 1, Connector_ID: 2156)

ALTER TABLE DEELPROCES ADD CONSTRAINT FK_DEELPROCES_IS_VAN FOREIGN KEY (IS_VAN_DEELPROCESTYPE_ID) REFERENCES DEELPROCESTYPE (DEELPROCESTYPE_ID);
-- IS_VAN (1 to 1, Connector_ID: 2157)

ALTER TABLE BEDRIJFSPROCES ADD CONSTRAINT FK_BEDRIJFSPROCES_IS_VAN FOREIGN KEY (IS_VAN_BEDRIJFSPROCESTYPE_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- IS_VAN (1..* to 1.., Connector_ID: 2201)

ALTER TABLE ZAAKTYPE ADD CONSTRAINT FK_ZAAKTYPE_HEEFT_2 FOREIGN KEY (HEEFT_BEDRIJFSPROCESTYPE_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- HEEFT (1 to 1..*, Connector_ID: 2202)

ALTER TABLE DEELPROCESTYPE ADD CONSTRAINT FK_DEELPROCESTYPE_IS_DEEL_VAN FOREIGN KEY (IS_DEEL_VAN_BEDRIJFSPROCESTYPE_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- IS_DEEL_VAN (1 to 1, Connector_ID: 2203)

ALTER TABLE PRODUCTTYPE ADD CONSTRAINT FK_PRODUCTTYPE_HEEFT FOREIGN KEY (HEEFT_BEDRIJFSPROCESTYPE_ID) REFERENCES BEDRIJFSPROCESTYPE (BEDRIJFSPROCESTYPE_ID);
-- HEEFT (1 to 1..*, Connector_ID: 2204)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_INDICATIEDEELZAKEN_ENUM_ID FOREIGN KEY (INDICATIEDEELZAKEN_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- INDICATIEDEELZAKEN_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE BEDRIJFSPROCES ADD CONSTRAINT FK_BEDRIJFSPROCES_AFGEROND_ENUM_ID FOREIGN KEY (AFGEROND_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- AFGEROND_ENUM_ID (1 to 1, Connector_ID: enum_ref)

