CREATE TABLE NIETNATUURLIJKPERSOON (
    NIETNATUURLIJKPERSOON_ID INTEGER PRIMARY KEY,
    DATUMAANVANG DATE,
    DATUMEINDE DATE,
    DATUMUITSCHRIJVING DATE,
    DATUMVOORTZETTING DATE,
    FAXNUMMER VARCHAR(20),
    INGESCHREVEN BOOLEAN,
    INOPRICHTING BOOLEAN,
    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 INTEGER 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 BOOLEAN,
    INGEZETENE BOOLEAN,
    LANDWAARNAARVERTROKKEN VARCHAR(255),
    LANDWAARVANDAANINGESCHREVEN VARCHAR(255),
    OUDER1 VARCHAR(255),
    OUDER2 VARCHAR(255),
    OUDER_1_INGESCHREVENPERSOON_ID INTEGER,
    OUDER_2_INGESCHREVENPERSOON_ID INTEGER,
    PARTNERID VARCHAR(255),
    REDENEINDEBEWONING DATE,
    REDENOPSCHORTINGBIJHOUDING VARCHAR(200),
    SIGNALERINGREISDOCUMENT BOOLEAN,
    VERBLIJFSTITEL VARCHAR(255)
);

CREATE TABLE GERECHTELIJKE_UITSPRAAK (
    GERECHTELIJKE_UITSPRAAK_ID INTEGER PRIMARY KEY
);

CREATE TABLE CLIENT (
    INGESCHREVENPERSOON_ID INTEGER PRIMARY KEY,
    CODE VARCHAR(80),
    GEZAGSDRAGERGEKEND BOOLEAN,
    JURIDISCHESTATUS VARCHAR(80),
    WETTELIJKEVERTEGENWOORDIGING VARCHAR(80)
);

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

CREATE TABLE KP_CLNT_INGSCHRVNPRSN (
    KP_CLNT_INGSCHRVNPRSN_ID INTEGER PRIMARY KEY,
    CLIENT_ID INTEGER,
    INGESCHREVENPERSOON_ID INTEGER
);

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)

