CREATE TABLE AFSPRAAKSTATUS (
    AFSPRAAKSTATUS_ID NUMBER PRIMARY KEY,
    STATUS VARCHAR2(255)
);

CREATE TABLE TELEFOONONDERWERP (
    TELEFOONONDERWERP_ID NUMBER PRIMARY KEY,
    ONDERWERP VARCHAR2(255)
);

CREATE TABLE VESTIGINGVANZAAKBEHANDELENDEORGANISATIE (
    VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID NUMBER PRIMARY KEY
);

CREATE TABLE PRODUCTOFDIENST (
    PRODUCTOFDIENST_ID NUMBER PRIMARY KEY,
    AFHANDELTIJD TIMESTAMP,
    INGEBRUIK NUMBER(1),
    NAAM 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 TELEFOONSTATUS (
    TELEFOONSTATUS_ID NUMBER PRIMARY KEY,
    CONTACTCONNECTIONSTATE VARCHAR2(20),
    STATUS VARCHAR2(20)
);

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,
    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 TELEFOONTJE (
    TELEFOONTJE_ID NUMBER PRIMARY KEY,
    AFHANDELTIJDNAGESPREK TIMESTAMP,
    DELTAISDNCONNECTIE NUMBER,
    EINDTIJD TIMESTAMP,
    HEEFT_TELEFOONONDERWERP_ID NUMBER,
    HEEFT_TELEFOONSTATUS_ID NUMBER,
    STARTTIJD TIMESTAMP,
    TOTALEONHOLDTIJD TIMESTAMP,
    TOTALESPREEKTIJD TIMESTAMP,
    TOTALETIJDSDUUR TIMESTAMP,
    TOTALEWACHTTIJD TIMESTAMP,
    TRACKID VARCHAR2(20)
);

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

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

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

CREATE TABLE BALIEAFSPRAAK (
    BALIEAFSPRAAK_ID NUMBER PRIMARY KEY,
    EINDTIJDGEPLAND TIMESTAMP,
    HEEFT_AFSPRAAKSTATUS_ID NUMBER,
    HEEFT_BETREKKING_OP_ZAAK_ID NUMBER,
    LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID NUMBER,
    MET_MEDEWERKER_ID NUMBER,
    MONDT_UIT_IN_KLANTCONTACT_ID NUMBER,
    NOTITIE CLOB,
    STARTTIJDGEPLAND TIMESTAMP,
    TIJDAANGEMAAKT TIMESTAMP,
    TIJDSDUURGEPLAND TIMESTAMP,
    TOELICHTING CLOB,
    WACHTTIJDNASTARTAFSPRAAK TIMESTAMP,
    WACHTTIJDTOTAAL TIMESTAMP,
    WACHTTIJDVOORSTARTAFSPRAAK TIMESTAMP,
    WERKELIJKETIJDSDUUR TIMESTAMP
);

CREATE TABLE KP_BLFSPRK_PRDCTFDNST (
    KP_BLFSPRK_PRDCTFDNST_ID NUMBER PRIMARY KEY,
    BALIEAFSPRAAK_ID NUMBER,
    PRODUCTOFDIENST_ID NUMBER
);

ALTER TABLE KP_BLFSPRK_PRDCTFDNST ADD CONSTRAINT FK_KP_BLFSPRK_PRDCTFDNST_1 FOREIGN KEY (BALIEAFSPRAAK_ID) REFERENCES BALIEAFSPRAAK (BALIEAFSPRAAK_ID);
-- BALIEAFSPRAAK (many-to-many junction, Connector_ID: 371)

ALTER TABLE KP_BLFSPRK_PRDCTFDNST ADD CONSTRAINT FK_KP_BLFSPRK_PRDCTFDNST_2 FOREIGN KEY (PRODUCTOFDIENST_ID) REFERENCES PRODUCTOFDIENST (PRODUCTOFDIENST_ID);
-- PRODUCTOFDIENST (many-to-many junction, Connector_ID: 371)

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_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 KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_MONDT_UIT_IN FOREIGN KEY (MONDT_UIT_IN_TELEFOONTJE_ID) REFERENCES TELEFOONTJE (TELEFOONTJE_ID);
-- MONDT_UIT_IN (0..1 to 0..*, Connector_ID: 356)

ALTER TABLE TELEFOONTJE ADD CONSTRAINT FK_TELEFOONTJE_HEEFT FOREIGN KEY (HEEFT_TELEFOONSTATUS_ID) REFERENCES TELEFOONSTATUS (TELEFOONSTATUS_ID);
-- HEEFT (0..* to 1, Connector_ID: 357)

ALTER TABLE TELEFOONTJE ADD CONSTRAINT FK_TELEFOONTJE_HEEFT_2 FOREIGN KEY (HEEFT_TELEFOONONDERWERP_ID) REFERENCES TELEFOONONDERWERP (TELEFOONONDERWERP_ID);
-- HEEFT (0..1 to 0..*, Connector_ID: 358)

ALTER TABLE KLANTCONTACT ADD CONSTRAINT FK_KLANTCONTACT_HEEFT FOREIGN KEY (HEEFT_TELEFOONONDERWERP_ID) REFERENCES TELEFOONONDERWERP (TELEFOONONDERWERP_ID);
-- HEEFT (0..1 to 0..*, Connector_ID: 359)

ALTER TABLE BALIEAFSPRAAK ADD CONSTRAINT FK_BALIEAFSPRAAK_LOCATIE FOREIGN KEY (LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID) REFERENCES VESTIGINGVANZAAKBEHANDELENDEORGANISATIE (VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID);
-- LOCATIE (0..* to 0..1, Connector_ID: 370)

ALTER TABLE BALIEAFSPRAAK ADD CONSTRAINT FK_BALIEAFSPRAAK_HEEFT_BETREKKING_OP FOREIGN KEY (HEEFT_BETREKKING_OP_ZAAK_ID) REFERENCES ZAAK (ZAAK_ID);
-- HEEFT_BETREKKING_OP (0..* to 0..1, Connector_ID: 372)

ALTER TABLE BALIEAFSPRAAK ADD CONSTRAINT FK_BALIEAFSPRAAK_MET FOREIGN KEY (MET_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- MET (0..* to 0..1, Connector_ID: 373)

ALTER TABLE BALIEAFSPRAAK ADD CONSTRAINT FK_BALIEAFSPRAAK_MONDT_UIT_IN FOREIGN KEY (MONDT_UIT_IN_KLANTCONTACT_ID) REFERENCES KLANTCONTACT (KLANTCONTACT_ID);
-- MONDT_UIT_IN (0..1 to 0..1, Connector_ID: 374)

ALTER TABLE BALIEAFSPRAAK ADD CONSTRAINT FK_BALIEAFSPRAAK_HEEFT FOREIGN KEY (HEEFT_AFSPRAAKSTATUS_ID) REFERENCES AFSPRAAKSTATUS (AFSPRAAKSTATUS_ID);
-- HEEFT (0..* to 1, Connector_ID: 375)

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 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 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)

