CREATE TABLE BOOLEAN_ENUM (
    BOOLEAN_ENUM_ID NUMBER PRIMARY KEY,
    VALUE VARCHAR2(255)
);

INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES (1, 'JA');
INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES (2, 'LEEG');
INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES (3, 'NEE');
INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES (4, 'ONBEKEND');

CREATE TABLE LIGPLAATS (
    LIGPLAATS_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    IDENTIFICATIE VARCHAR2(255),
    STATUS VARCHAR2(255),
    VERSIE VARCHAR2(255)
);

CREATE TABLE VERBLIJFSOBJECT (
    VERBLIJFSOBJECT_ID NUMBER PRIMARY KEY,
    AANTALKAMERS VARCHAR2(255),
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    GEBRUIKSDOEL VARCHAR2(255),
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    HOOGSTEBOUWLAAG VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    LAAGSTEBOUWLAAG VARCHAR2(255),
    ONTSLUITINGVERDIEPING VARCHAR2(255),
    OPPERVLAKTE NUMBER,
    SOORTWOONOBJECT VARCHAR2(255),
    STATUS VARCHAR2(255),
    TOEGANGBOUWLAAG VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE PAND (
    PAND_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    BRUTOINHOUDPAND VARCHAR2(255),
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER VARCHAR2(255),
    EINDGELDIGHEID DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIEBOVENAANZICHT SDO_GEOMETRY,
    GEOMETRIEMAAIVELD SDO_GEOMETRY,
    GEOMETRIEPUNT SDO_GEOMETRY,
    HOOGSTEBOUWLAAG VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    LAAGSTEBOUWLAAG VARCHAR2(255),
    OORSPRONKELIJKBOUWJAAR VARCHAR2(255),
    OPPERVLAKTE VARCHAR2(255),
    RELATIEVEHOOGTELIGGING VARCHAR2(255),
    STATUS VARCHAR2(255),
    STATUSVOORTGANGBOUW VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE STANDPLAATS (
    STANDPLAATS_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    IDENTIFICATIE VARCHAR2(255),
    STATUS VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE WOONPLAATS (
    WOONPLAATS_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    EINDREGISTRATIE DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    IDENTIFICATIE VARCHAR2(255),
    STATUS VARCHAR2(255),
    TIJDSTIPACTIEF TIMESTAMP,
    TIJDSTIPREGISTRATIE TIMESTAMP,
    VERSIE NUMBER,
    VOORKOMEN DATE,
    WOONPLAATSNAAM VARCHAR2(80),
    WOONPLAATSNAAMNEN VARCHAR2(255)
);

CREATE TABLE KP_VRBLJFSBJCT_PND (
    KP_VRBLJFSBJCT_PND_ID NUMBER PRIMARY KEY,
    VERBLIJFSOBJECT_ID NUMBER,
    PAND_ID NUMBER
);

CREATE TABLE OPENBARERUIMTE (
    OPENBARERUIMTE_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    HUISNUMMERRANGE_EVEN_EN_ONEVEN_NUMMERS VARCHAR2(255),
    HUISNUMMERRANGE_EVEN_NUMMERS VARCHAR2(255),
    HUISNUMMERRANGE_ONEVEN_NUMMERS VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    LABELNAAM VARCHAR2(80),
    LIGT_IN_WOONPLAATS_ID NUMBER,
    NAAMOPENBARERUIMTE VARCHAR2(80),
    STATUS VARCHAR2(255),
    STRAATCODE VARCHAR2(80),
    STRAATNAAM VARCHAR2(255),
    TYPEOPENBARERUIMTE VARCHAR2(255),
    VERSIE NUMBER,
    WEGSEGMENT VARCHAR2(255)
);

CREATE TABLE NUMMERAANDUIDING (
    NUMMERAANDUIDING_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDEGELDIGHEID DATE,
    GECONSTATEERD_ENUM_ID NUMBER,
    GEOMETRIE SDO_GEOMETRY,
    HUISLETTER VARCHAR2(255),
    HUISNUMMER VARCHAR2(255),
    HUISNUMMERTOEVOEGING VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    LIGT_AAN_OPENBARERUIMTE_ID NUMBER,
    LIGT_IN_WOONPLAATS_ID NUMBER,
    POSTCODE VARCHAR2(255),
    STATUS VARCHAR2(255),
    TYPEADRESSEERBAAROBJECT VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE ONDERZOEK (
    ONDERZOEK_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID VARCHAR2(255),
    DATUMACTUEELTOT DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDGELDIGHEID DATE,
    EINDREGISTRATIE DATE,
    IDENTIFICATIE VARCHAR2(255),
    INONDERZOEK_ENUM_ID NUMBER,
    KENMERK VARCHAR2(255),
    OBJECTIDENTIFICATIE VARCHAR2(255),
    OBJECTIDENTIFICATIE_LIGPLAATS_ID NUMBER,
    OBJECTIDENTIFICATIE_NUMMERAANDUIDING_ID NUMBER,
    OBJECTIDENTIFICATIE_OPENBARERUIMTE_ID NUMBER,
    OBJECTIDENTIFICATIE_PAND_ID NUMBER,
    OBJECTIDENTIFICATIE_STANDPLAATS_ID NUMBER,
    OBJECTIDENTIFICATIE_VERBLIJFSOBJECT_ID NUMBER,
    OBJECTIDENTIFICATIE_WOONPLAATS_ID NUMBER,
    OBJECTTYPE VARCHAR2(255),
    TIJDSTIPREGISTRATIE TIMESTAMP,
    VOLGNUMMER NUMBER
);

ALTER TABLE KP_VRBLJFSBJCT_PND ADD CONSTRAINT FK_KP_VRBLJFSBJCT_PND_1 FOREIGN KEY (VERBLIJFSOBJECT_ID) REFERENCES VERBLIJFSOBJECT (VERBLIJFSOBJECT_ID);
-- VERBLIJFSOBJECT (many-to-many junction, Connector_ID: 2305)

ALTER TABLE KP_VRBLJFSBJCT_PND ADD CONSTRAINT FK_KP_VRBLJFSBJCT_PND_2 FOREIGN KEY (PAND_ID) REFERENCES PAND (PAND_ID);
-- PAND (many-to-many junction, Connector_ID: 2305)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE FOREIGN KEY (OBJECTIDENTIFICATIE_OPENBARERUIMTE_ID) REFERENCES OPENBARERUIMTE (OPENBARERUIMTE_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2256)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_2 FOREIGN KEY (OBJECTIDENTIFICATIE_LIGPLAATS_ID) REFERENCES LIGPLAATS (LIGPLAATS_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2257)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_3 FOREIGN KEY (OBJECTIDENTIFICATIE_STANDPLAATS_ID) REFERENCES STANDPLAATS (STANDPLAATS_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2258)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_4 FOREIGN KEY (OBJECTIDENTIFICATIE_VERBLIJFSOBJECT_ID) REFERENCES VERBLIJFSOBJECT (VERBLIJFSOBJECT_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2259)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_5 FOREIGN KEY (OBJECTIDENTIFICATIE_NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2278)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_LIGT_AAN FOREIGN KEY (LIGT_AAN_OPENBARERUIMTE_ID) REFERENCES OPENBARERUIMTE (OPENBARERUIMTE_ID);
-- LIGT_AAN (0..* to 1, Connector_ID: 2281)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_LIGT_IN FOREIGN KEY (LIGT_IN_WOONPLAATS_ID) REFERENCES WOONPLAATS (WOONPLAATS_ID);
-- LIGT_IN (0..* to 0..1, Connector_ID: 2283)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_6 FOREIGN KEY (OBJECTIDENTIFICATIE_WOONPLAATS_ID) REFERENCES WOONPLAATS (WOONPLAATS_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2284)

ALTER TABLE OPENBARERUIMTE ADD CONSTRAINT FK_OPENBARERUIMTE_LIGT_IN FOREIGN KEY (LIGT_IN_WOONPLAATS_ID) REFERENCES WOONPLAATS (WOONPLAATS_ID);
-- LIGT_IN (1..* to 1, Connector_ID: 2288)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_OBJECTIDENTIFICATIE_7 FOREIGN KEY (OBJECTIDENTIFICATIE_PAND_ID) REFERENCES PAND (PAND_ID);
-- OBJECTIDENTIFICATIE (0..1 to 1, Connector_ID: 2304)

ALTER TABLE PAND ADD CONSTRAINT FK_PAND_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE WOONPLAATS ADD CONSTRAINT FK_WOONPLAATS_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE VERBLIJFSOBJECT ADD CONSTRAINT FK_VERBLIJFSOBJECT_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE ONDERZOEK ADD CONSTRAINT FK_ONDERZOEK_INONDERZOEK_ENUM_ID FOREIGN KEY (INONDERZOEK_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- INONDERZOEK_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE LIGPLAATS ADD CONSTRAINT FK_LIGPLAATS_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE STANDPLAATS ADD CONSTRAINT FK_STANDPLAATS_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE OPENBARERUIMTE ADD CONSTRAINT FK_OPENBARERUIMTE_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref)

