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

CREATE TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN (
    KP_NTNTRLJKPRSN_NTRLJKPRSN_ID NUMBER PRIMARY KEY,
    NIETNATUURLIJKPERSOON_ID NUMBER,
    NATUURLIJKPERSOON_ID NUMBER
);

CREATE TABLE NATUURLIJKPERSOON (
    NATUURLIJKPERSOON_ID NUMBER PRIMARY KEY,
    AANDUIDINGNAAMGEBRUIK VARCHAR2(50),
    AANHEFAANSCHRIJVING VARCHAR2(50),
    ACADEMISCHETITEL VARCHAR2(80),
    ACHTERNAAM VARCHAR2(100),
    ADELLIJKETITELOFPREDIKAAT VARCHAR2(255),
    ANUMMER VARCHAR2(20),
    BIJZONDERNEDERLANDERSCHAP VARCHAR2(50),
    BURGERSERVICENUMMER VARCHAR2(255),
    DATUMGEBOORTE DATE,
    DATUMOVERLIJDEN DATE,
    GEBOORTELAND VARCHAR2(255),
    GEBOORTEPLAATS VARCHAR2(200),
    GESLACHTSAANDUIDING VARCHAR2(255),
    GESLACHTSNAAM VARCHAR2(200),
    GESLACHTSNAAMAANSCHRIJVING VARCHAR2(200),
    HANDLICHTING VARCHAR2(50),
    INDICATIEAFSCHERMINGPERSOONSGEGEVENS NUMBER(1),
    INDICATIEOVERLEDEN NUMBER(1),
    LANDOVERLIJDEN VARCHAR2(255),
    NATIONALITEIT VARCHAR2(100),
    OVERLIJDENSPLAATS VARCHAR2(200),
    VOORLETTERSAANSCHRIJVING VARCHAR2(20),
    VOORNAMEN VARCHAR2(200),
    VOORNAMENAANSCHRIJVING VARCHAR2(200),
    VOORVOEGSELGESLACHTSNAAM VARCHAR2(80)
);

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

CREATE TABLE AANVRAAGOFMELDING (
    AANVRAAGOFMELDING_ID NUMBER PRIMARY KEY,
    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 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,
    INDICATIEBETALING VARCHAR2(255),
    INDICATIEDEELZAKEN NUMBER(1),
    INDICATIEOPSCHORTING VARCHAR2(255),
    IS_DEELZAAK_VAN_ZAAK_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 BETROKKENE (
    BETROKKENE_ID NUMBER PRIMARY KEY,
    ADRESBINNENLAND VARCHAR2(255),
    ADRESBUITENLAND VARCHAR2(200),
    IDENTIFICATIE VARCHAR2(50),
    IS_NATUURLIJKPERSOON_ID NUMBER,
    IS_NIETNATUURLIJKPERSOON_ID NUMBER,
    NAAM VARCHAR2(200)
);

CREATE TABLE NIETNATUURLIJKPERSOON (
    NIETNATUURLIJKPERSOON_ID NUMBER PRIMARY KEY,
    DATUMAANVANG DATE,
    DATUMEINDE DATE,
    DATUMUITSCHRIJVING DATE,
    DATUMVOORTZETTING DATE,
    FAXNUMMER VARCHAR2(20),
    INGESCHREVEN NUMBER(1),
    INOPRICHTING NUMBER(1),
    KVKNUMMER VARCHAR2(255),
    NNPID VARCHAR2(255),
    RECHTSVORM VARCHAR2(255),
    RSINNUMMER VARCHAR2(255),
    STATUTAIRENAAM VARCHAR2(255),
    STATUTAIREZETEL VARCHAR2(255),
    WEBSITEURL VARCHAR2(200)
);

ALTER TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_1 FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID);
-- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970)

ALTER TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_2 FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970)

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 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 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_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 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_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 BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS FOREIGN KEY (IS_NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID);
-- IS (0..1 to 1, Connector_ID: 2159)

ALTER TABLE KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_HEEFT_KLANTCONTACTEN FOREIGN KEY (HEEFT_KLANTCONTACTEN_BETROKKENE_ID) REFERENCES BETROKKENE (BETROKKENE_ID);
-- HEEFT_KLANTCONTACTEN (0..* to 0..1, Connector_ID: 2162)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS_2 FOREIGN KEY (IS_NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID);
-- IS (0..1 to 1, Connector_ID: 2163)

