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 KP_KDSTRLNRRNDZK_ADRSNDDNG (
    KP_KDSTRLNRRNDZK_ADRSNDDNG_ID NUMBER PRIMARY KEY,
    KADASTRALEONROERENDEZAAK_ID NUMBER,
    ADRESAANDUIDING_ID NUMBER
);

CREATE TABLE VASTGOEDOBJECT (
    VASTGOEDOBJECT_ID NUMBER PRIMARY KEY,
    AANTALETAGES NUMBER,
    AANTALPARKEERPLAATSEN NUMBER,
    AANTALRIOLERINGEN NUMBER,
    ADRESAANDUIDING VARCHAR2(255),
    AFGEKOCHTEERFPACHT NUMBER(1),
    AFGESPROKENCONDITIESCORE VARCHAR2(255),
    AFKOOPWAARDE VARCHAR2(255),
    ASBESTRAPPORTAGEAANWEZIG NUMBER(1),
    BEDRAGAANKOOP NUMBER(10,2),
    BESTEMMINGSPLAN VARCHAR2(200),
    BOEKWAARDE VARCHAR2(255),
    BOUWJAAR NUMBER,
    BOUWWERK VARCHAR2(80),
    BOVENLIGGENDNIVEAU VARCHAR2(80),
    BOVENLIGGENDNIVEAUCODE VARCHAR2(20),
    BRUTOVLOEROPPERVLAKTE NUMBER,
    CO2UITSTOOT NUMBER,
    CONDITIESCORE VARCHAR2(255),
    DATUMAFSTOTEN DATE,
    DATUMBEREKENINGOPPERVLAK DATE,
    DATUMEIGENDOM DATE,
    DATUMVERKOOP DATE,
    DEELPORTEFEUILLE VARCHAR2(80),
    ENERGIEKOSTEN NUMBER(10,2),
    ENERGIELABEL VARCHAR2(255),
    ENERGIEVERBRUIK NUMBER,
    FISCALEWAARDE VARCHAR2(255),
    FOTO VARCHAR2(255),
    GEARCHIVEERD NUMBER(1),
    HERBOUWWAARDE VARCHAR2(255),
    HOOFDSTUK VARCHAR2(80),
    IDENTIFICATIE VARCHAR2(80),
    JAARLAATSTERENOVATIE VARCHAR2(255),
    KOSTENPLAATS NUMBER(10,2),
    LOCATIE VARCHAR2(255),
    MARKTWAARDE VARCHAR2(255),
    MONUMENT_ENUM_ID NUMBER,
    NAAM VARCHAR2(80),
    OBJECTSTATUS VARCHAR2(255),
    OBJECTSTATUSCODE VARCHAR2(255),
    OBJECTTYPE VARCHAR2(80),
    OBJECTTYPECODE VARCHAR2(255),
    OMSCHRIJVING VARCHAR2(80),
    ONDERHOUDSCATEGORIE VARCHAR2(80),
    OPPERVLAKTEKANTOOR NUMBER,
    PORTEFEUILLE VARCHAR2(80),
    PORTEFEUILLECODE VARCHAR2(255),
    PROVINCIE VARCHAR2(255),
    TOELICHTING CLOB,
    VERHUURBAARVLOEROPPERVLAK NUMBER,
    VERKOOPBAARHEID VARCHAR2(80),
    VERKOOPBEDRAG NUMBER(10,2),
    VERZEKERDEWAARDE VARCHAR2(255),
    WAARDEGROND VARCHAR2(255),
    WAARDEOPSTAL VARCHAR2(255),
    WIJK VARCHAR2(255),
    WOZWAARDE VARCHAR2(255)
);

CREATE TABLE ZAKELIJKRECHT (
    ZAKELIJKRECHT_ID NUMBER PRIMARY KEY,
    AARDZAKELIJKRECHT VARCHAR2(255),
    DATUMEINDERECHT DATE,
    DATUMINGANGRECHT DATE,
    IDENTIFICATIEZAKELIJKRECHT VARCHAR2(255),
    IS_BELAST_MET_ZAKELIJKRECHT_ID NUMBER,
    RUST_OP_KADASTRALEONROERENDEZAAK_ID NUMBER,
    TOELICHTINGBEWAARDER VARCHAR2(100)
);

CREATE TABLE VERHUURBAAR_EENHEID (
    VERHUURBAAR_EENHEID_ID NUMBER PRIMARY KEY,
    ADRES VARCHAR2(255),
    AFMETING NUMBER,
    BEZETTING NUMBER,
    DATUMEINDE DATE,
    DATUMSTART DATE,
    DATUMWERKELIJKBEGIN DATE,
    DATUMWERKELIJKEINDE DATE,
    HEEFT_VASTGOEDOBJECT_ID NUMBER,
    HUURPRIJS NUMBER(10,2),
    IDENTIFICATIE VARCHAR2(80),
    NAAM VARCHAR2(80),
    NETTOOMTREK NUMBER,
    NETTOOPPERVLAK NUMBER,
    OPMERKINGEN CLOB,
    TYPE VARCHAR2(80)
);

CREATE TABLE ADRESAANDUIDING (
    ADRESAANDUIDING_ID NUMBER PRIMARY KEY,
    ADRES 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 MONUMENTTYPERING_ENUM (
    MONUMENTTYPERING_ENUM_ID NUMBER PRIMARY KEY,
    VALUE VARCHAR2(255)
);

INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (1, 'BESCHERMD_STADSGEZICHT');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (2, 'DEELS_RIJKSMONUMENT');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (3, 'GEEN_MONUMENT');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (4, 'GEMEENTELIJK_MONUMENT');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (5, 'JA');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (6, 'LEEG');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (7, 'NEE');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (8, 'ONBEKEND');
INSERT INTO MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID, VALUE) VALUES (9, 'RIJKSMONUMENT');

CREATE TABLE KP_VSTGDBJCT_KDSTRLNRRNDZK (
    KP_VSTGDBJCT_KDSTRLNRRNDZK_ID NUMBER PRIMARY KEY,
    VASTGOEDOBJECT_ID NUMBER,
    KADASTRALEONROERENDEZAAK_ID 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
);

ALTER TABLE KP_VSTGDBJCT_KDSTRLNRRNDZK ADD CONSTRAINT FK_KP_VSTGDBJCT_KDSTRLNRRNDZK_1 FOREIGN KEY (VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID);
-- VASTGOEDOBJECT (many-to-many junction, Connector_ID: 548)

ALTER TABLE KP_VSTGDBJCT_KDSTRLNRRNDZK ADD CONSTRAINT FK_KP_VSTGDBJCT_KDSTRLNRRNDZK_2 FOREIGN KEY (KADASTRALEONROERENDEZAAK_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- KADASTRALEONROERENDEZAAK (many-to-many junction, Connector_ID: 548)

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 KP_KDSTRLNRRNDZK_ADRSNDDNG ADD CONSTRAINT FK_KP_KDSTRLNRRNDZK_ADRSNDDNG_1 FOREIGN KEY (KADASTRALEONROERENDEZAAK_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- KADASTRALEONROERENDEZAAK (many-to-many junction, Connector_ID: 1941)

ALTER TABLE KP_KDSTRLNRRNDZK_ADRSNDDNG ADD CONSTRAINT FK_KP_KDSTRLNRRNDZK_ADRSNDDNG_2 FOREIGN KEY (ADRESAANDUIDING_ID) REFERENCES ADRESAANDUIDING (ADRESAANDUIDING_ID);
-- ADRESAANDUIDING (many-to-many junction, Connector_ID: 1941)

ALTER TABLE VERHUURBAAR_EENHEID ADD CONSTRAINT FK_VERHUURBAAR_EENHEID_HEEFT FOREIGN KEY (HEEFT_VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID);
-- HEEFT (1 to 0..*, Connector_ID: 547)

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 ZAKELIJKRECHT ADD CONSTRAINT FK_ZAKELIJKRECHT_IS_BELAST_MET FOREIGN KEY (IS_BELAST_MET_ZAKELIJKRECHT_ID) REFERENCES ZAKELIJKRECHT (ZAKELIJKRECHT_ID);
-- IS_BELAST_MET (0..1 to 0..*, Connector_ID: 1944)

ALTER TABLE ZAKELIJKRECHT ADD CONSTRAINT FK_ZAKELIJKRECHT_RUST_OP FOREIGN KEY (RUST_OP_KADASTRALEONROERENDEZAAK_ID) REFERENCES KADASTRALEONROERENDEZAAK (KADASTRALEONROERENDEZAAK_ID);
-- RUST_OP (1..* to 0..1, Connector_ID: 1947)

ALTER TABLE VASTGOEDOBJECT ADD CONSTRAINT FK_VASTGOEDOBJECT_MONUMENT_ENUM_ID FOREIGN KEY (MONUMENT_ENUM_ID_MONUMENTTYPERING_ENUM_ID) REFERENCES MONUMENTTYPERING_ENUM (MONUMENTTYPERING_ENUM_ID);
-- MONUMENT_ENUM_ID (1 to 1, Connector_ID: enum_ref)

