CREATE TABLE AANDUIDINGEIGENAARGEBRUIKER_ENUM (
    AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID NUMBER PRIMARY KEY,
    VALUE VARCHAR2(255)
);

INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (1, 'EIGENAAR');
INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (2, 'EIGENAAR_GEBRUIKER');
INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (3, 'GEBRUIKER');
INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (4, 'LEEG');
INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (5, 'MEDEBELANGHEBBENDE');
INSERT INTO AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID, VALUE) VALUES (6, 'ONBEKEND');

CREATE TABLE KP_WOZ_OBJCT_KDSTRLNRRNDZK (
    KP_WOZ_OBJCT_KDSTRLNRRNDZK_ID NUMBER PRIMARY KEY,
    WOZ_OBJECT_ID NUMBER,
    KADASTRALEONROERENDEZAAK_ID NUMBER
);

CREATE TABLE ADRESSEERBAAROBJECT (
    ADRESSEERBAAROBJECT_ID NUMBER PRIMARY KEY,
    HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID NUMBER,
    IDENTIFICATIE VARCHAR2(255),
    TYPEADRESSEERBAAROBJECT VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ (
    KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ_ID NUMBER PRIMARY KEY,
    IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_1_ID NUMBER,
    IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_2_ID NUMBER
);

CREATE TABLE WOZ_OBJECT (
    WOZ_OBJECT_ID NUMBER PRIMARY KEY,
    DATUMBEGINGELDIGHEIDWOZOBJECT DATE,
    DATUMEINDEGELDIGHEIDWOZOBJECT DATE,
    DATUMWAARDEPEILING DATE,
    GEBRUIKSCODE VARCHAR2(255),
    GEOMETRIEWOZOBJECT SDO_GEOMETRY,
    GRONDOPPERVLAKTE VARCHAR2(255),
    LIGT_AAN_OPENBARERUIMTE_ID NUMBER,
    SOORTOBJECTCODE VARCHAR2(255),
    STATUSWOZOBJECT VARCHAR2(255),
    VASTGESTELDEWAARDE VARCHAR2(255),
    WOZOBJECTNUMMER VARCHAR2(255)
);

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),
    NAAMOPENBARERUIMTE VARCHAR2(80),
    STATUS VARCHAR2(255),
    STRAATCODE VARCHAR2(80),
    STRAATNAAM VARCHAR2(255),
    TYPEOPENBARERUIMTE VARCHAR2(255),
    VERSIE NUMBER,
    WEGSEGMENT VARCHAR2(255)
);

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 KADASTRALEONROERENDEZAAK (
    KADASTRALEONROERENDEZAAK_ID NUMBER PRIMARY KEY,
    APPARTEMENTSRECHTVOLGNUMMER VARCHAR2(255),
    BEGRENZING VARCHAR2(255),
    CULTUURCODEONBEBOUWD VARCHAR2(255),
    DATUMBEGINGELDIGHEID DATE,
    DATUMEINDEGELDIGHEID DATE,
    GERELATEERD_KADASTRALEONROERENDEZAAK_ID NUMBER,
    IDENTIFICATIE VARCHAR2(255),
    KADASTRALEGEMEENTE VARCHAR2(20),
    KADASTRALEGEMEENTECODE VARCHAR2(20),
    KOOPJAAR NUMBER,
    KOOPSOM VARCHAR2(255),
    LANDINRICHTINGRENTEBEDRAG NUMBER(10,2),
    LANDINRICHTINGRENTEEINDEJAAR DATE,
    LIGGING VARCHAR2(255),
    LOCATIEOMSCHRIJVING VARCHAR2(255),
    OPPERVLAKTE NUMBER,
    PERCEELNUMMER VARCHAR2(255),
    SECTIE VARCHAR2(255),
    VALUTACODE 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,
    HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID NUMBER,
    HUISLETTER VARCHAR2(255),
    HUISNUMMER VARCHAR2(255),
    HUISNUMMERTOEVOEGING VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    LIGT_AAN_OPENBARERUIMTE_ID NUMBER,
    POSTCODE VARCHAR2(255),
    STATUS VARCHAR2(255),
    TYPEADRESSEERBAAROBJECT VARCHAR2(255),
    VERSIE NUMBER,
    VERWIJST_NAAR_LOCATIEAANDUIDINGWOZOBJECT_ID NUMBER
);

CREATE TABLE SOORTWOZOBJECT (
    SOORTWOZOBJECT_ID NUMBER PRIMARY KEY,
    DATUMBEGINGELDIGHEIDSOORTOBJECTCODE DATE,
    DATUMEINDEGELDIGHEIDSOORTOBJECTCODE DATE,
    NAAMSOORTOBJECTCODE VARCHAR2(255),
    OPMERKINGENSOORTOBJECTCODE VARCHAR2(255),
    SOORTOBJECTCODE VARCHAR2(255)
);

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 WOZ_WAARDE (
    WOZ_WAARDE_ID NUMBER PRIMARY KEY,
    DATUMPEILINGTOESTAND DATE,
    DATUMWAARDEPEILING DATE,
    IS_VOOR_WOZ_OBJECT_ID NUMBER,
    STATUSBESCHIKKING VARCHAR2(255),
    VASTGESTELDEWAARDE VARCHAR2(255)
);

CREATE TABLE RECHTSPERSOON (
    RECHTSPERSOON_ID NUMBER PRIMARY KEY,
    ADRESBINNENLAND VARCHAR2(255),
    ADRESBUITENLAND VARCHAR2(255),
    ADRESCORRESPONDENTIE VARCHAR2(100),
    EMAILADRES VARCHAR2(80),
    FAXNUMMER VARCHAR2(20),
    IDENTIFICATIE VARCHAR2(255),
    KVKNUMMER VARCHAR2(20),
    NAAM VARCHAR2(200),
    RECHTSVORM VARCHAR2(100),
    REKENINGNUMMER VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20)
);

CREATE TABLE WOZ_DEELOBJECT (
    WOZ_DEELOBJECT_ID NUMBER PRIMARY KEY,
    BESTAAT_UIT_ADRESSEERBAAROBJECT_ID NUMBER,
    BESTAAT_UIT_PAND_ID NUMBER,
    CODEWOZDEELOBJECT VARCHAR2(255),
    DATUMBEGINGELDIGHEIDDEELOBJECT DATE,
    DATUMEINDEGELDIGHEIDDEELOBJECT DATE,
    IS_ONDERDEEL_VAN_WOZ_OBJECT_ID NUMBER,
    STATUSWOZDEELOBJECT VARCHAR2(255),
    WOZDEELOBJECTNUMMER VARCHAR2(255)
);

CREATE TABLE WOZ_BELANG (
    WOZ_BELANG_ID NUMBER PRIMARY KEY,
    DATUMBEGINGELDIGHEID DATE,
    DATUMEINDEGELDIGHEID DATE,
    EIGENAARGEBRUIKER_ENUM_ID NUMBER,
    HEEFT_RECHTSPERSOON_ID NUMBER,
    HEEFT_WOZ_OBJECT_ID NUMBER
);

CREATE TABLE LOCATIEAANDUIDINGWOZOBJECT (
    LOCATIEAANDUIDINGWOZOBJECT_ID NUMBER PRIMARY KEY,
    DATUMBEGINGELDIGHEID DATE,
    DATUMEINDEGELDIGHEID DATE,
    HEEFT_WOZ_OBJECT_ID NUMBER,
    LOCATIEOMSCHRIJVING VARCHAR2(100),
    PRIMAIR_ENUM_ID NUMBER
);

ALTER TABLE KP_WOZ_OBJCT_KDSTRLNRRNDZK ADD CONSTRAINT FK_KP_WOZ_OBJCT_KDSTRLNRRNDZK_1 FOREIGN KEY (WOZ_OBJECT_ID) REFERENCES WOZ_OBJECT (WOZ_OBJECT_ID);
-- WOZ_OBJECT (many-to-many junction, Connector_ID: 1931)

ALTER TABLE KP_WOZ_OBJCT_KDSTRLNRRNDZK ADD CONSTRAINT FK_KP_WOZ_OBJCT_KDSTRLNRRNDZK_2 FOREIGN KEY (KADASTRALEONROERENDEZAAK_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- KADASTRALEONROERENDEZAAK (many-to-many junction, Connector_ID: 1931)

ALTER TABLE KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ ADD CONSTRAINT FK_KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ_1 FOREIGN KEY (IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_1_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- KADASTRALEONROERENDEZAAK (many-to-many junction, Connector_ID: 1933)

ALTER TABLE KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ ADD CONSTRAINT FK_KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ_2 FOREIGN KEY (IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_2_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- KADASTRALEONROERENDEZAAK (many-to-many junction, Connector_ID: 1933)

ALTER TABLE LOCATIEAANDUIDINGWOZOBJECT ADD CONSTRAINT FK_LOCATIEAANDUIDINGWOZOBJECT_HEEFT FOREIGN KEY (HEEFT_WOZ_OBJECT_ID) REFERENCES WOZ_OBJECT (WOZ_OBJECT_ID);
-- HEEFT (1 to 1, Connector_ID: 566)

ALTER TABLE WOZ_DEELOBJECT ADD CONSTRAINT FK_WOZ_DEELOBJECT_IS_ONDERDEEL_VAN FOREIGN KEY (IS_ONDERDEEL_VAN_WOZ_OBJECT_ID) REFERENCES WOZ_OBJECT (WOZ_OBJECT_ID);
-- IS_ONDERDEEL_VAN (1..* to 1, Connector_ID: 1846)

ALTER TABLE WOZ_BELANG ADD CONSTRAINT FK_WOZ_BELANG_HEEFT FOREIGN KEY (HEEFT_WOZ_OBJECT_ID) REFERENCES WOZ_OBJECT (WOZ_OBJECT_ID);
-- HEEFT (1 to 1..*, Connector_ID: 1847)

ALTER TABLE WOZ_BELANG ADD CONSTRAINT FK_WOZ_BELANG_HEEFT_2 FOREIGN KEY (HEEFT_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID);
-- HEEFT (1 to 1..*, Connector_ID: 1919)

ALTER TABLE KADASTRALEONROERENDEZAAK ADD CONSTRAINT FK_KADASTRALEONROERENDEZAAK_GERELATEERD FOREIGN KEY (GERELATEERD_KADASTRALEONROERENDEZAAK_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- GERELATEERD (1 to 0..*, Connector_ID: 1938)

ALTER TABLE WOZ_WAARDE ADD CONSTRAINT FK_WOZ_WAARDE_IS_VOOR FOREIGN KEY (IS_VOOR_WOZ_OBJECT_ID) REFERENCES WOZ_OBJECT (WOZ_OBJECT_ID);
-- IS_VOOR (0..* to 1, Connector_ID: 1950)

ALTER TABLE WOZ_OBJECT ADD CONSTRAINT FK_WOZ_OBJECT_LIGT_AAN FOREIGN KEY (LIGT_AAN_OPENBARERUIMTE_ID) REFERENCES OPENBARERUIMTE (OPENBARERUIMTE_ID);
-- LIGT_AAN (0..* to 0..1, Connector_ID: 2239)

ALTER TABLE WOZ_DEELOBJECT ADD CONSTRAINT FK_WOZ_DEELOBJECT_BESTAAT_UIT FOREIGN KEY (BESTAAT_UIT_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID);
-- BESTAAT_UIT (1..* to 0..1, Connector_ID: 2246)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_HEEFT_ALS_NEVENADRES FOREIGN KEY (HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID);
-- HEEFT_ALS_NEVENADRES (1 to 0..*, Connector_ID: 2268)

ALTER TABLE ADRESSEERBAAROBJECT ADD CONSTRAINT FK_ADRESSEERBAAROBJECT_HEEFT_ALS_HOOFDADRES FOREIGN KEY (HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- HEEFT_ALS_HOOFDADRES (1 to 1, Connector_ID: 2274)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_VERWIJST_NAAR FOREIGN KEY (VERWIJST_NAAR_LOCATIEAANDUIDINGWOZOBJECT_ID) REFERENCES LOCATIEAANDUIDINGWOZOBJECT (LOCATIEAANDUIDINGWOZOBJECT_ID);
-- VERWIJST_NAAR (0..1 to 1, Connector_ID: 2279)

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 WOZ_DEELOBJECT ADD CONSTRAINT FK_WOZ_DEELOBJECT_BESTAAT_UIT_2 FOREIGN KEY (BESTAAT_UIT_PAND_ID) REFERENCES PAND (PAND_ID);
-- BESTAAT_UIT (0..* to 0..1, Connector_ID: 2303)

ALTER TABLE LOCATIEAANDUIDINGWOZOBJECT ADD CONSTRAINT FK_LOCATIEAANDUIDINGWOZOBJECT_PRIMAIR_ENUM_ID FOREIGN KEY (PRIMAIR_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID);
-- PRIMAIR_ENUM_ID (1 to 1, Connector_ID: enum_ref)

ALTER TABLE WOZ_BELANG ADD CONSTRAINT FK_WOZ_BELANG_EIGENAARGEBRUIKER_ENUM_ID FOREIGN KEY (EIGENAARGEBRUIKER_ENUM_ID_AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID) REFERENCES AANDUIDINGEIGENAARGEBRUIKER_ENUM (AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID);
-- EIGENAARGEBRUIKER_ENUM_ID (1 to 1, Connector_ID: enum_ref)

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

