CREATE TABLE [AFSPRAAKSTATUS] (
    [AFSPRAAKSTATUS_ID] INT PRIMARY KEY,
    [STATUS] VARCHAR(255)
);

CREATE TABLE [TELEFOONONDERWERP] (
    [TELEFOONONDERWERP_ID] INT PRIMARY KEY,
    [ONDERWERP] VARCHAR(255)
);

CREATE TABLE [VESTIGINGVANZAAKBEHANDELENDEORGANISATIE] (
    [VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID] INT PRIMARY KEY
);

CREATE TABLE [PRODUCTOFDIENST] (
    [PRODUCTOFDIENST_ID] INT PRIMARY KEY,
    [AFHANDELTIJD] DATETIME2,
    [INGEBRUIK] BIT,
    [NAAM] VARCHAR(80)
);

CREATE TABLE [MEDEWERKER] (
    [MEDEWERKER_ID] INT PRIMARY KEY,
    [ACHTERNAAM] VARCHAR(200),
    [DATUMINDIENST] DATE,
    [DATUMUITDIENST] DATE,
    [EMAILADRES] VARCHAR(255),
    [EXTERN] BIT,
    [FUNCTIE] VARCHAR(50),
    [GESLACHTSAANDUIDING] VARCHAR(255),
    [MEDEWERKERIDENTIFICATIE] VARCHAR(255),
    [MEDEWERKERTOELICHTING] VARCHAR(255),
    [ROEPNAAM] VARCHAR(255),
    [TELEFOONNUMMER] VARCHAR(20),
    [VOORLETTERS] VARCHAR(20),
    [VOORVOEGSELACHTERNAAM] VARCHAR(255)
);

CREATE TABLE [TELEFOONSTATUS] (
    [TELEFOONSTATUS_ID] INT PRIMARY KEY,
    [CONTACTCONNECTIONSTATE] VARCHAR(20),
    [STATUS] VARCHAR(20)
);

CREATE TABLE [ZAAK] (
    [ZAAK_ID] INT 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] INT,
    [INDICATIEBETALING] VARCHAR(255),
    [INDICATIEDEELZAKEN] BIT,
    [INDICATIEOPSCHORTING] VARCHAR(255),
    [IS_DEELZAAK_VAN_ZAAK_ID] INT,
    [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)
);

CREATE TABLE [TELEFOONTJE] (
    [TELEFOONTJE_ID] INT PRIMARY KEY,
    [AFHANDELTIJDNAGESPREK] DATETIME2,
    [DELTAISDNCONNECTIE] INT,
    [EINDTIJD] DATETIME2,
    [HEEFT_TELEFOONONDERWERP_ID] INT,
    [HEEFT_TELEFOONSTATUS_ID] INT,
    [STARTTIJD] DATETIME2,
    [TOTALEONHOLDTIJD] DATETIME2,
    [TOTALESPREEKTIJD] DATETIME2,
    [TOTALETIJDSDUUR] DATETIME2,
    [TOTALEWACHTTIJD] DATETIME2,
    [TRACKID] VARCHAR(20)
);

CREATE TABLE [KP_ZK_MDWRKR] (
    [KP_ZK_MDWRKR_ID] INT PRIMARY KEY,
    [ZAAK_ID] INT,
    [MEDEWERKER_ID] INT
);

CREATE TABLE [KLANTCONTACT] (
    [KLANTCONTACT_ID] INT PRIMARY KEY,
    [EINDTIJD] DATETIME2,
    [HEEFT_BETREKKING_OP_ZAAK_ID] INT,
    [HEEFT_TELEFOONONDERWERP_ID] INT,
    [IS_GEVOERD_DOOR_MEDEWERKER_ID] INT,
    [KANAAL] VARCHAR(20),
    [LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID] INT,
    [MONDT_UIT_IN_TELEFOONTJE_ID] INT,
    [NOTITIE] NVARCHAR(MAX),
    [STARTTIJD] DATETIME2,
    [TIJDSDUUR] DATETIME2,
    [TOELICHTING] NVARCHAR(MAX),
    [WACHTTIJDTOTAAL] DATETIME2
);

CREATE TABLE [KP_KLNTCNTCT_PRDCTFDNST] (
    [KP_KLNTCNTCT_PRDCTFDNST_ID] INT PRIMARY KEY,
    [KLANTCONTACT_ID] INT,
    [PRODUCTOFDIENST_ID] INT
);

CREATE TABLE [BALIEAFSPRAAK] (
    [BALIEAFSPRAAK_ID] INT PRIMARY KEY,
    [EINDTIJDGEPLAND] DATETIME2,
    [HEEFT_AFSPRAAKSTATUS_ID] INT,
    [HEEFT_BETREKKING_OP_ZAAK_ID] INT,
    [LOCATIE_VESTIGINGVANZAAKBEHANDELENDEORGANISATIE_ID] INT,
    [MET_MEDEWERKER_ID] INT,
    [MONDT_UIT_IN_KLANTCONTACT_ID] INT,
    [NOTITIE] NVARCHAR(MAX),
    [STARTTIJDGEPLAND] DATETIME2,
    [TIJDAANGEMAAKT] DATETIME2,
    [TIJDSDUURGEPLAND] DATETIME2,
    [TOELICHTING] NVARCHAR(MAX),
    [WACHTTIJDNASTARTAFSPRAAK] DATETIME2,
    [WACHTTIJDTOTAAL] DATETIME2,
    [WACHTTIJDVOORSTARTAFSPRAAK] DATETIME2,
    [WERKELIJKETIJDSDUUR] DATETIME2
);

CREATE TABLE [KP_BLFSPRK_PRDCTFDNST] (
    [KP_BLFSPRK_PRDCTFDNST_ID] INT PRIMARY KEY,
    [BALIEAFSPRAAK_ID] INT,
    [PRODUCTOFDIENST_ID] INT
);

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)

