CREATE TABLE ORGANISATORISCHEEENHEID (
    ORGANISATORISCHEEENHEID_ID NUMBER PRIMARY KEY,
    DATUMONTSTAAN DATE,
    DATUMOPHEFFING DATE,
    EMAILADRES VARCHAR2(255),
    FAXNUMMER VARCHAR2(20),
    FORMATIE VARCHAR2(255),
    IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID NUMBER,
    NAAM VARCHAR2(50),
    NAAMVERKORT VARCHAR2(255),
    OMSCHRIJVING VARCHAR2(80),
    ORGANISATIEIDENTIFICATIE VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    TOELICHTING VARCHAR2(255)
);

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

CREATE TABLE BETROKKENE (
    BETROKKENE_ID NUMBER PRIMARY KEY,
    ADRESBINNENLAND VARCHAR2(255),
    ADRESBUITENLAND VARCHAR2(200),
    IDENTIFICATIE VARCHAR2(50),
    IS_ORGANISATORISCHEEENHEID_ID NUMBER,
    NAAM VARCHAR2(200)
);

CREATE TABLE KLANTBEOORDELING (
    KLANTBEOORDELING_ID NUMBER PRIMARY KEY,
    BEOORDELING VARCHAR2(255),
    CATEGORIE VARCHAR2(50),
    CONTACTOPNEMEN NUMBER(1),
    DDBEOORDELING DATE,
    DOET_BETROKKENE_ID NUMBER,
    KANAAL VARCHAR2(100),
    ONDERWERP VARCHAR2(50),
    SUBCATEGORIE VARCHAR2(50)
);

CREATE TABLE KP_ORGNSTRSCHNHD_KLNTBRDLNG (
    KP_ORGNSTRSCHNHD_KLNTBRDLNG_ID NUMBER PRIMARY KEY,
    ORGANISATORISCHEEENHEID_ID NUMBER,
    KLANTBEOORDELING_ID NUMBER
);

CREATE TABLE KLANTBEOORDELINGREDEN (
    KLANTBEOORDELINGREDEN_ID NUMBER PRIMARY KEY,
    HEEFT_KLANTBEOORDELING_ID NUMBER,
    REDEN VARCHAR2(100)
);

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_KLANTBEOORDELING_ID NUMBER,
    INDICATIEBETALING VARCHAR2(255),
    INDICATIEDEELZAKEN NUMBER(1),
    INDICATIEOPSCHORTING VARCHAR2(255),
    IS_DEELZAAK_VAN_ZAAK_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 KP_PRDCTFDNST_KLNTBRDLNG (
    KP_PRDCTFDNST_KLNTBRDLNG_ID NUMBER PRIMARY KEY,
    PRODUCTOFDIENST_ID NUMBER,
    KLANTBEOORDELING_ID NUMBER
);

CREATE TABLE KP_BTRKKN_ZK (
    KP_BTRKKN_ZK_ID NUMBER PRIMARY KEY,
    BETROKKENE_ID NUMBER,
    ZAAK_ID NUMBER
);

ALTER TABLE KP_PRDCTFDNST_KLNTBRDLNG ADD CONSTRAINT FK_KP_PRDCTFDNST_KLNTBRDLNG_1 FOREIGN KEY (PRODUCTOFDIENST_ID) REFERENCES PRODUCTOFDIENST (PRODUCTOFDIENST_ID);
-- PRODUCTOFDIENST (many-to-many junction, Connector_ID: 364)

ALTER TABLE KP_PRDCTFDNST_KLNTBRDLNG ADD CONSTRAINT FK_KP_PRDCTFDNST_KLNTBRDLNG_2 FOREIGN KEY (KLANTBEOORDELING_ID) REFERENCES KLANTBEOORDELING (KLANTBEOORDELING_ID);
-- KLANTBEOORDELING (many-to-many junction, Connector_ID: 364)

ALTER TABLE KP_ORGNSTRSCHNHD_KLNTBRDLNG ADD CONSTRAINT FK_KP_ORGNSTRSCHNHD_KLNTBRDLNG_1 FOREIGN KEY (ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- ORGANISATORISCHEEENHEID (many-to-many junction, Connector_ID: 2064)

ALTER TABLE KP_ORGNSTRSCHNHD_KLNTBRDLNG ADD CONSTRAINT FK_KP_ORGNSTRSCHNHD_KLNTBRDLNG_2 FOREIGN KEY (KLANTBEOORDELING_ID) REFERENCES KLANTBEOORDELING (KLANTBEOORDELING_ID);
-- KLANTBEOORDELING (many-to-many junction, Connector_ID: 2064)

ALTER TABLE KP_BTRKKN_ZK ADD CONSTRAINT FK_KP_BTRKKN_ZK_1 FOREIGN KEY (BETROKKENE_ID) REFERENCES BETROKKENE (BETROKKENE_ID);
-- BETROKKENE (many-to-many junction, Connector_ID: 2164)

ALTER TABLE KP_BTRKKN_ZK ADD CONSTRAINT FK_KP_BTRKKN_ZK_2 FOREIGN KEY (ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- ZAAK (many-to-many junction, Connector_ID: 2164)

ALTER TABLE KLANTBEOORDELINGREDEN ADD CONSTRAINT FK_KLANTBEOORDELINGREDEN_HEEFT FOREIGN KEY (HEEFT_KLANTBEOORDELING_ID) REFERENCES KLANTBEOORDELING (KLANTBEOORDELING_ID);
-- HEEFT (1 to 0..*, Connector_ID: 367)

ALTER TABLE ORGANISATORISCHEEENHEID ADD CONSTRAINT FK_ORGANISATORISCHEEENHEID_IS_DEEL_VAN FOREIGN KEY (IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_DEEL_VAN (1 to 0..1, Connector_ID: 2059)

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 FOREIGN KEY (HEEFT_KLANTBEOORDELING_ID) REFERENCES KLANTBEOORDELING (KLANTBEOORDELING_ID);
-- HEEFT (1 to 0..1, Connector_ID: 2116)

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 KLANTBEOORDELING ADD CONSTRAINT FK_KLANTBEOORDELING_DOET FOREIGN KEY (DOET_BETROKKENE_ID) REFERENCES BETROKKENE (BETROKKENE_ID);
-- DOET (1 to 0..*, Connector_ID: 2160)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS FOREIGN KEY (IS_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS (0..1 to 1, Connector_ID: 2161)

