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

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

CREATE TABLE GERECHTELIJKE_UITSPRAAK (
    GERECHTELIJKE_UITSPRAAK_ID NUMBER PRIMARY KEY
);

CREATE TABLE CLIENT (
    INGESCHREVENPERSOON_ID NUMBER PRIMARY KEY,
    CODE VARCHAR2(80),
    GEZAGSDRAGERGEKEND NUMBER(1),
    JURIDISCHESTATUS VARCHAR2(80),
    WETTELIJKEVERTEGENWOORDIGING VARCHAR2(80)
);

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

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

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)

