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

CREATE TABLE KP_KDSTRLNRRNDZK_ADRSNDDNG (
    KP_KDSTRLNRRNDZK_ADRSNDDNG_ID INTEGER PRIMARY KEY,
    KADASTRALEONROERENDEZAAK_ID INTEGER,
    ADRESAANDUIDING_ID INTEGER
);

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

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

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

CREATE TABLE ADRESAANDUIDING (
    ADRESAANDUIDING_ID INTEGER PRIMARY KEY,
    ADRES INTEGER
);

CREATE TABLE KADASTRALEONROERENDEZAAK (
    KADASTRALEONROERENDEZAAK_ID INTEGER PRIMARY KEY,
    APPARTEMENTSRECHTVOLGNUMMER VARCHAR(255),
    BEGRENZING VARCHAR(255),
    CULTUURCODEONBEBOUWD VARCHAR(255),
    DATUMBEGINGELDIGHEID DATE,
    DATUMEINDEGELDIGHEID DATE,
    GERELATEERD_KADASTRALEONROERENDEZAAK_ID INTEGER,
    IDENTIFICATIE VARCHAR(255),
    KADASTRALEGEMEENTE VARCHAR(20),
    KADASTRALEGEMEENTECODE VARCHAR(20),
    KOOPJAAR INTEGER,
    KOOPSOM VARCHAR(255),
    LANDINRICHTINGRENTEBEDRAG DECIMAL(10,2),
    LANDINRICHTINGRENTEEINDEJAAR DATE,
    LIGGING VARCHAR(255),
    LOCATIEOMSCHRIJVING VARCHAR(255),
    OPPERVLAKTE INTEGER,
    PERCEELNUMMER VARCHAR(255),
    SECTIE VARCHAR(255),
    VALUTACODE VARCHAR(255)
);

CREATE TABLE MONUMENTTYPERING_ENUM (
    MONUMENTTYPERING_ENUM_ID INTEGER PRIMARY KEY,
    VALUE VARCHAR(255)
);

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

CREATE TABLE KP_VSTGDBJCT_KDSTRLNRRNDZK (
    KP_VSTGDBJCT_KDSTRLNRRNDZK_ID INTEGER PRIMARY KEY,
    VASTGOEDOBJECT_ID INTEGER,
    KADASTRALEONROERENDEZAAK_ID INTEGER
);

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

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)

