CREATE TABLE KP_ANVRGFMLDNG_ONDRWRP (
    KP_ANVRGFMLDNG_ONDRWRP_ID NUMBER PRIMARY KEY,
    AANVRAAGOFMELDING_ID NUMBER,
    ONDERWERP_ID NUMBER
);

CREATE TABLE VESTIGINGVANZAAKBEHANDELENDEORGANISATIE (
    VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID NUMBER PRIMARY KEY
);

CREATE TABLE KP_FRMLRSRT_ZKTYP (
    KP_FRMLRSRT_ZKTYP_ID NUMBER PRIMARY KEY,
    FORMULIERSOORT_ID NUMBER,
    ZAAKTYPE_ID NUMBER
);

CREATE TABLE HEFFING (
    HEFFING_ID NUMBER PRIMARY KEY,
    BEDRAG NUMBER(10,2),
    CODE VARCHAR2(80),
    DATUMINDIENING DATE,
    GEFACTUREERD NUMBER(1),
    INREKENING VARCHAR2(255),
    NUMMER NUMBER,
    RUNNUMMER NUMBER
);

CREATE TABLE ONDERWERP (
    ONDERWERP_ID NUMBER PRIMARY KEY,
    HOOFDONDERWERP_ONDERWERP_ID NUMBER,
    ISACTIEF NUMBER(1),
    NAAM VARCHAR2(80),
    TOELICHTING CLOB
);

CREATE TABLE FORMULIERSOORT (
    FORMULIERSOORT_ID NUMBER PRIMARY KEY,
    INGEBRUIK NUMBER(1),
    NAAM VARCHAR2(80),
    ONDERWERP VARCHAR2(80)
);

CREATE TABLE MEDEWERKER (
    MEDEWERKER_ID NUMBER PRIMARY KEY,
    ACHTERNAAM VARCHAR2(200),
    DATUMINDIENST DATE,
    DATUMUITDIENST DATE,
    EMAILADRES VARCHAR2(255),
    EXTERN NUMBER(1),
    FUNCTIE VARCHAR2(50),
    GESLACHTSAANDUIDING VARCHAR2(255),
    MEDEWERKERIDENTIFICATIE VARCHAR2(255),
    MEDEWERKERTOELICHTING VARCHAR2(255),
    ROEPNAAM VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    VOORLETTERS VARCHAR2(20),
    VOORVOEGSELACHTERNAAM VARCHAR2(255)
);

CREATE TABLE KLANTCONTACT (
    KLANTCONTACT_ID NUMBER PRIMARY KEY,
    EINDTIJD TIMESTAMP,
    HEEFT_BETREKKING_OP_ZAAK_ID NUMBER,
    IS_GEVOERD_DOOR_MEDEWERKER_ID NUMBER,
    KANAAL VARCHAR2(20),
    LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID NUMBER,
    NOTITIE CLOB,
    STARTTIJD TIMESTAMP,
    TIJDSDUUR TIMESTAMP,
    TOELICHTING CLOB,
    WACHTTIJDTOTAAL TIMESTAMP
);

CREATE TABLE DOCUMENT (
    DOCUMENT_ID NUMBER PRIMARY KEY,
    COCUMENTBESCHRIJVING VARCHAR2(255),
    DATUMCREATIEDOCUMENT DATE,
    DATUMONTVANGSTDOCUMENT DATE,
    DATUMVERZENDINGDOCUMENT DATE,
    DOCUMENTAUTEUR VARCHAR2(200),
    DOCUMENTIDENTIFICATIE VARCHAR2(255),
    DOCUMENTTITEL VARCHAR2(200),
    HEEFT_DOCUMENTEN_AANVRAAGOFMELDING_ID NUMBER,
    VERTROUWELIJKAANDUIDING VARCHAR2(20)
);

CREATE TABLE KP_ZK_MDWRKR (
    KP_ZK_MDWRKR_ID NUMBER PRIMARY KEY,
    ZAAK_ID NUMBER,
    MEDEWERKER_ID NUMBER
);

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

CREATE TABLE PRODUCTOFDIENST (
    PRODUCTOFDIENST_ID NUMBER PRIMARY KEY,
    AFHANDELTIJD TIMESTAMP,
    INGEBRUIK NUMBER(1),
    NAAM VARCHAR2(80)
);

CREATE TABLE FORMULIERSOORTVELD (
    FORMULIERSOORTVELD_ID NUMBER PRIMARY KEY,
    HEEFT_VELDEN_FORMULIERSOORT_ID NUMBER,
    HELPTEKST CLOB,
    ISVERPLICHT NUMBER(1),
    LABEL VARCHAR2(80),
    MAXLENGTE NUMBER,
    VELDNAAM VARCHAR2(255),
    VELDTYPE VARCHAR2(255)
);

CREATE TABLE AANVRAAGOFMELDING (
    AANVRAAGOFMELDING_ID NUMBER PRIMARY KEY,
    AANVRAAG_MET__FORMULIERSOORT_ID NUMBER,
    AFGEHANDELD NUMBER(1),
    CATEGORIE VARCHAR2(200),
    CATEGORIECODE VARCHAR2(80),
    DATUMAANMAAK DATE,
    DATUMAFHANDELING DATE,
    DATUMBEGINSTATUS DATE,
    DATUMEINDESTATUS DATE,
    HOOFDCATEGORIE VARCHAR2(80),
    HOOFDCATEGORIECODE VARCHAR2(80),
    IDENTIFICATIE VARCHAR2(255),
    KANAAL VARCHAR2(80),
    KAN_LEIDEN_TOT_KLANTCONTACT_ID NUMBER,
    ONDERWERP VARCHAR2(200),
    ONDERWERPCODE VARCHAR2(80),
    SOORT VARCHAR2(80),
    STATUS VARCHAR2(80),
    STATUSCODE VARCHAR2(80),
    STATUSVOLGORDE VARCHAR2(80),
    SUBCATEGORIE VARCHAR2(200),
    SUBCATEGORIECODE VARCHAR2(80)
);

CREATE TABLE ZAAKTYPE (
    ZAAKTYPE_ID NUMBER PRIMARY KEY,
    ARCHIEFCODE VARCHAR2(20),
    DATUMBEGINGELDIGHEIDZAAKTYPE DATE,
    DATUMEINDEGELDIGHEIDZAAKTYPE DATE,
    DOORLOOPTIJDBEHANDELING TIMESTAMP,
    INDICATIEPUBLICATIE VARCHAR2(255),
    IS_VERANTWOORDELIJKE_VOOR_MEDEWERKER_ID NUMBER,
    PUBLICATIETEKST VARCHAR2(255),
    SERVICENORMBEHANDELING VARCHAR2(255),
    TREFWOORD VARCHAR2(255),
    VERTROUWELIJKAANDUIDING VARCHAR2(20),
    ZAAKCATEGORIE VARCHAR2(255),
    ZAAKTYPEOMSCHRIJVING VARCHAR2(80),
    ZAAKTYPEOMSCHRIJVINGGENERIEK VARCHAR2(80)
);

CREATE TABLE KP_KLNTCNTCT_PRDCTFDNST (
    KP_KLNTCNTCT_PRDCTFDNST_ID NUMBER PRIMARY KEY,
    KLANTCONTACT_ID NUMBER,
    PRODUCTOFDIENST_ID NUMBER
);

CREATE TABLE AANVRAAGDATA (
    AANVRAAGDATA_ID NUMBER PRIMARY KEY,
    DATA VARCHAR2(255),
    HEEFT_DATA_AANVRAAGOFMELDING_ID NUMBER,
    IS_CONFORM_FORMULIERSOORTVELD_ID NUMBER,
    VELD VARCHAR2(255)
);

CREATE TABLE BETALING (
    BETALING_ID NUMBER PRIMARY KEY,
    BEDRAG NUMBER(10,2),
    DATUMTIJD TIMESTAMP,
    HEEFT_BETALING_ZAAK_ID NUMBER,
    OMSCHRIJVING VARCHAR2(200),
    VALUTA VARCHAR2(255)
);

CREATE TABLE KP_ZK_DCMNT (
    KP_ZK_DCMNT_ID NUMBER PRIMARY KEY,
    ZAAK_ID NUMBER,
    DOCUMENT_ID NUMBER
);

ALTER TABLE KP_FRMLRSRT_ZKTYP ADD CONSTRAINT FK_KP_FRMLRSRT_ZKTYP_1 FOREIGN KEY (FORMULIERSOORT_ID) REFERENCES FORMULIERSOORT (FORMULIERSOORT_ID);
-- FORMULIERSOORT (many-to-many junction, Connector_ID: 369)

ALTER TABLE KP_FRMLRSRT_ZKTYP ADD CONSTRAINT FK_KP_FRMLRSRT_ZKTYP_2 FOREIGN KEY (ZAAKTYPE_ID) REFERENCES ZAAKTYPE (ZAAKTYPE_ID);
-- ZAAKTYPE (many-to-many junction, Connector_ID: 369)

ALTER TABLE KP_ANVRGFMLDNG_ONDRWRP ADD CONSTRAINT FK_KP_ANVRGFMLDNG_ONDRWRP_1 FOREIGN KEY (AANVRAAGOFMELDING_ID) REFERENCES AANVRAAGOFMELDING (AANVRAAGOFMELDING_ID);
-- AANVRAAGOFMELDING (many-to-many junction, Connector_ID: 381)

ALTER TABLE KP_ANVRGFMLDNG_ONDRWRP ADD CONSTRAINT FK_KP_ANVRGFMLDNG_ONDRWRP_2 FOREIGN KEY (ONDERWERP_ID) REFERENCES ONDERWERP (ONDERWERP_ID);
-- ONDERWERP (many-to-many junction, Connector_ID: 381)

ALTER TABLE KP_KLNTCNTCT_PRDCTFDNST ADD CONSTRAINT FK_KP_KLNTCNTCT_PRDCTFDNST_1 FOREIGN KEY (KLANTCONTACT_ID) REFERENCES KLANTCONTACT (KLANTCONTACT_ID);
-- KLANTCONTACT (many-to-many junction, Connector_ID: 2055)

ALTER TABLE KP_KLNTCNTCT_PRDCTFDNST ADD CONSTRAINT FK_KP_KLNTCNTCT_PRDCTFDNST_2 FOREIGN KEY (PRODUCTOFDIENST_ID) REFERENCES PRODUCTOFDIENST (PRODUCTOFDIENST_ID);
-- PRODUCTOFDIENST (many-to-many junction, Connector_ID: 2055)

ALTER TABLE KP_ZK_DCMNT ADD CONSTRAINT FK_KP_ZK_DCMNT_1 FOREIGN KEY (ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- ZAAK (many-to-many junction, Connector_ID: 2132)

ALTER TABLE KP_ZK_DCMNT ADD CONSTRAINT FK_KP_ZK_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 2132)

ALTER TABLE KP_ZK_MDWRKR ADD CONSTRAINT FK_KP_ZK_MDWRKR_1 FOREIGN KEY (ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- ZAAK (many-to-many junction, Connector_ID: 2190)

ALTER TABLE KP_ZK_MDWRKR ADD CONSTRAINT FK_KP_ZK_MDWRKR_2 FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- MEDEWERKER (many-to-many junction, Connector_ID: 2190)

ALTER TABLE ONDERWERP ADD CONSTRAINT FK_ONDERWERP_HOOFDONDERWERP FOREIGN KEY (HOOFDONDERWERP_ONDERWERP_ID) REFERENCES ONDERWERP (ONDERWERP_ID);
-- HOOFDONDERWERP (0..* to 1, Connector_ID: 361)

ALTER TABLE FORMULIERSOORTVELD ADD CONSTRAINT FK_FORMULIERSOORTVELD_HEEFT_VELDEN FOREIGN KEY (HEEFT_VELDEN_FORMULIERSOORT_ID) REFERENCES FORMULIERSOORT (FORMULIERSOORT_ID);
-- HEEFT_VELDEN (1 to 0..*, Connector_ID: 368)

ALTER TABLE DOCUMENT ADD CONSTRAINT FK_DOCUMENT_HEEFT_DOCUMENTEN FOREIGN KEY (HEEFT_DOCUMENTEN_AANVRAAGOFMELDING_ID) REFERENCES AANVRAAGOFMELDING (AANVRAAGOFMELDING_ID);
-- HEEFT_DOCUMENTEN (0..1 to 0..*, Connector_ID: 378)

ALTER TABLE AANVRAAGOFMELDING ADD CONSTRAINT FK_AANVRAAGOFMELDING_AANVRAAG_MET_ FOREIGN KEY (AANVRAAG_MET__FORMULIERSOORT_ID) REFERENCES FORMULIERSOORT (FORMULIERSOORT_ID);
-- AANVRAAG_MET_ (0..* to 0..1, Connector_ID: 379)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_KAN_LEIDEN_TOT FOREIGN KEY (KAN_LEIDEN_TOT_AANVRAAGOFMELDING_ID) REFERENCES AANVRAAGOFMELDING (AANVRAAGOFMELDING_ID);
-- KAN_LEIDEN_TOT (0..1 to 0..*, Connector_ID: 380)

ALTER TABLE AANVRAAGDATA ADD CONSTRAINT FK_AANVRAAGDATA_HEEFT_DATA FOREIGN KEY (HEEFT_DATA_AANVRAAGOFMELDING_ID) REFERENCES AANVRAAGOFMELDING (AANVRAAGOFMELDING_ID);
-- HEEFT_DATA (1 to 0..*, Connector_ID: 382)

ALTER TABLE AANVRAAGDATA ADD CONSTRAINT FK_AANVRAAGDATA_IS_CONFORM FOREIGN KEY (IS_CONFORM_FORMULIERSOORTVELD_ID) REFERENCES FORMULIERSOORTVELD (FORMULIERSOORTVELD_ID);
-- IS_CONFORM (0..* to 1, Connector_ID: 383)

ALTER TABLE KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_LOCATIE FOREIGN KEY (LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID) REFERENCES VESTIGINGVANZAAKBEHANDELENDEORGANISATIE (VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID);
-- LOCATIE (0..* to 0..1, Connector_ID: 2052)

ALTER TABLE AANVRAAGOFMELDING ADD CONSTRAINT FK_AANVRAAGOFMELDING_KAN_LEIDEN_TOT FOREIGN KEY (KAN_LEIDEN_TOT_KLANTCONTACT_ID) REFERENCES KLANTCONTACT (KLANTCONTACT_ID);
-- KAN_LEIDEN_TOT (0..1 to 0..*, Connector_ID: 2057)

ALTER TABLE ZAAK ADD CONSTRAINT FK_ZAAK_HEEFT FOREIGN KEY (HEEFT_HEFFING_ID) REFERENCES HEFFING (HEFFING_ID);
-- HEEFT (1 to 0..1, Connector_ID: 2103)

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 BETALING ADD CONSTRAINT FK_BETALING_HEEFT_BETALING FOREIGN KEY (HEEFT_BETALING_ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- HEEFT_BETALING (0..1 to 0..*, Connector_ID: 2114)

ALTER TABLE KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_HEEFT_BETREKKING_OP FOREIGN KEY (HEEFT_BETREKKING_OP_ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- HEEFT_BETREKKING_OP (0..* to 0..1, Connector_ID: 2115)

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 ZAAKTYPE ADD CONSTRAINT FK_ZAAKTYPE_IS_VERANTWOORDELIJKE_VOOR FOREIGN KEY (IS_VERANTWOORDELIJKE_VOOR_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- IS_VERANTWOORDELIJKE_VOOR (0..1 to 0..*, Connector_ID: 2170)

ALTER TABLE KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_IS_GEVOERD_DOOR FOREIGN KEY (IS_GEVOERD_DOOR_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- IS_GEVOERD_DOOR (0..* to 0..1, Connector_ID: 2186)

