CREATE TABLE [NIETNATUURLIJKPERSOON] (
    [NIETNATUURLIJKPERSOON_ID] INT PRIMARY KEY,
    [DATUMAANVANG] DATE,
    [DATUMEINDE] DATE,
    [DATUMUITSCHRIJVING] DATE,
    [DATUMVOORTZETTING] DATE,
    [FAXNUMMER] VARCHAR(20),
    [INGESCHREVEN] BIT,
    [INOPRICHTING] BIT,
    [KVKNUMMER] VARCHAR(255),
    [NNPID] VARCHAR(255),
    [RECHTSVORM] VARCHAR(255),
    [RSINNUMMER] VARCHAR(255),
    [STATUTAIRENAAM] VARCHAR(255),
    [STATUTAIREZETEL] VARCHAR(255),
    [WEBSITEURL] VARCHAR(200)
);

CREATE TABLE [INGESCHREVENPERSOON] (
    [INGESCHREVENPERSOON_ID] INT PRIMARY KEY,
    [ADRESHERKOMST] VARCHAR(255),
    [ANUMMER] VARCHAR(20),
    [BESCHRIJVINGLOCATIE] VARCHAR(200),
    [BUITENLANDSREISDOCUMENT] VARCHAR(80),
    [BURGERLIJKESTAAT] VARCHAR(255),
    [DATUMBEGINGELDIGHEIDVERBLIJFPLAATS] DATE,
    [DATUMEINDEGELDIGHEIDVERBLIJFSPLAATS] DATE,
    [DATUMINSCHRIJVINGGEMEENTE] DATE,
    [DATUMOPSCHORTINGBIJHOUDING] DATE,
    [DATUMVERTREKUITNEDERLAND] DATE,
    [DATUMVESTIGINGNEDERLAND] DATE,
    [GEMEENTEVANINSCHRIJVING] VARCHAR(80),
    [GEZINSRELATIE] VARCHAR(255),
    [INDICATIEGEHEIM] BIT,
    [INGEZETENE] BIT,
    [LANDWAARNAARVERTROKKEN] VARCHAR(255),
    [LANDWAARVANDAANINGESCHREVEN] VARCHAR(255),
    [OUDER1] VARCHAR(255),
    [OUDER2] VARCHAR(255),
    [OUDER_1_INGESCHREVENPERSOON_ID] INT,
    [OUDER_2_INGESCHREVENPERSOON_ID] INT,
    [PARTNERID] VARCHAR(255),
    [REDENEINDEBEWONING] DATE,
    [REDENOPSCHORTINGBIJHOUDING] VARCHAR(200),
    [SIGNALERINGREISDOCUMENT] BIT,
    [VERBLIJFSTITEL] VARCHAR(255)
);

CREATE TABLE [GERECHTELIJKE_UITSPRAAK] (
    [GERECHTELIJKE_UITSPRAAK_ID] INT PRIMARY KEY
);

CREATE TABLE [CLIENT] (
    [INGESCHREVENPERSOON_ID] INT PRIMARY KEY,
    [CODE] VARCHAR(80),
    [GEZAGSDRAGERGEKEND] BIT,
    [JURIDISCHESTATUS] VARCHAR(80),
    [WETTELIJKEVERTEGENWOORDIGING] VARCHAR(80)
);

CREATE TABLE [GEZAGSVERHOUDING] (
    [GEZAGSVERHOUDING_ID] INT PRIMARY KEY,
    [BASIS_VAN_GERECHTELIJKE_UITSPRAAK_ID] INT,
    [BETREFT_INGESCHREVENPERSOON_ID] INT,
    [EINDDATUM] DATE,
    [GEZAGHEBBENDE_INGESCHREVENPERSOON_ID] INT,
    [GEZAGHEBBENDE_NIETNATUURLIJKPERSOON_ID] INT,
    [INDICATIE_CURATELEREGISTER] INT,
    [INDICATIE_GEZAG_MINDERJARIGE] INT,
    [INGANGSDATUM] DATE
);

CREATE TABLE [KP_CLNT_INGSCHRVNPRSN] (
    [KP_CLNT_INGSCHRVNPRSN_ID] INT PRIMARY KEY,
    [CLIENT_ID] INT,
    [INGESCHREVENPERSOON_ID] INT
);

ALTER TABLE [CLIENT] ADD CONSTRAINT FK_CLIENT_GEN_INGESCHREVENPERSOON FOREIGN KEY ([INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- Generalization to INGESCHREVENPERSOON

ALTER TABLE [KP_CLNT_INGSCHRVNPRSN] ADD CONSTRAINT FK_KP_CLNT_INGSCHRVNPRSN_1 FOREIGN KEY ([CLIENT_ID]) REFERENCES [CLIENT] ([INGESCHREVENPERSOON_ID]);
-- CLIENT (many-to-many junction, Connector_ID: 958)

ALTER TABLE [KP_CLNT_INGSCHRVNPRSN] ADD CONSTRAINT FK_KP_CLNT_INGSCHRVNPRSN_2 FOREIGN KEY ([INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- INGESCHREVENPERSOON (many-to-many junction, Connector_ID: 958)

ALTER TABLE [GEZAGSVERHOUDING] ADD CONSTRAINT FK_GEZAGSVERHOUDING_BETREFT FOREIGN KEY ([BETREFT_INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- BETREFT (0..2 to 1, Connector_ID: 934)

ALTER TABLE [GEZAGSVERHOUDING] ADD CONSTRAINT FK_GEZAGSVERHOUDING_BASIS_VAN FOREIGN KEY ([BASIS_VAN_GERECHTELIJKE_UITSPRAAK_ID]) REFERENCES [GERECHTELIJKE_UITSPRAAK] ([GERECHTELIJKE_UITSPRAAK_ID]);
-- BASIS_VAN (0..1 to 0..*, Connector_ID: 935)

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_1 FOREIGN KEY ([OUDER_1_INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- OUDER_1 (1 to 1, Connector_ID: 1871)

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_2 FOREIGN KEY ([OUDER_2_INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- OUDER_2 (1 to 1, Connector_ID: 1873)

ALTER TABLE [GEZAGSVERHOUDING] ADD CONSTRAINT FK_GEZAGSVERHOUDING_GEZAGHEBBENDE FOREIGN KEY ([GEZAGHEBBENDE_INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([INGESCHREVENPERSOON_ID]);
-- GEZAGHEBBENDE (0..1 to 0..*, Connector_ID: 1874)

ALTER TABLE [GEZAGSVERHOUDING] ADD CONSTRAINT FK_GEZAGSVERHOUDING_GEZAGHEBBENDE_2 FOREIGN KEY ([GEZAGHEBBENDE_NIETNATUURLIJKPERSOON_ID]) REFERENCES [NIETNATUURLIJKPERSOON] ([NIETNATUURLIJKPERSOON_ID]);
-- GEZAGHEBBENDE (0..1 to 0..*, Connector_ID: 1964)

