CREATE TABLE [AANDUIDINGEIGENAARGEBRUIKER_ENUM] (
    [AANDUIDINGEIGENAARGEBRUIKER_ENUM_ID] INT PRIMARY KEY,
    VALUE VARCHAR(255)
);

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

CREATE TABLE [KP_WOZ_OBJCT_KDSTRLNRRNDZK] (
    [KP_WOZ_OBJCT_KDSTRLNRRNDZK_ID] INT PRIMARY KEY,
    [WOZ_OBJECT_ID] INT,
    [KADASTRALEONROERENDEZAAK_ID] INT
);

CREATE TABLE [ADRESSEERBAAROBJECT] (
    [ADRESSEERBAAROBJECT_ID] INT PRIMARY KEY,
    [HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID] INT,
    [IDENTIFICATIE] VARCHAR(255),
    [TYPEADRESSEERBAAROBJECT] VARCHAR(255),
    [VERSIE] INT
);

CREATE TABLE [KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ] (
    [KP_KDSTRLNRRNDZK_IS_ONTSTN_UIT_ANDR_KDSTRL_ONRZ_ZK_BIJ_ID] INT PRIMARY KEY,
    [IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_1_ID] INT,
    [IS_ONTSTAAN_UIT_ANDERE_KADASTRALE_ONROERENDE_ZAAK_BIJ_2_ID] INT
);

CREATE TABLE [WOZ_OBJECT] (
    [WOZ_OBJECT_ID] INT PRIMARY KEY,
    [DATUMBEGINGELDIGHEIDWOZOBJECT] DATE,
    [DATUMEINDEGELDIGHEIDWOZOBJECT] DATE,
    [DATUMWAARDEPEILING] DATE,
    [GEBRUIKSCODE] VARCHAR(255),
    [GEOMETRIEWOZOBJECT] GEOMETRY,
    [GRONDOPPERVLAKTE] VARCHAR(255),
    [LIGT_AAN_OPENBARERUIMTE_ID] INT,
    [SOORTOBJECTCODE] VARCHAR(255),
    [STATUSWOZOBJECT] VARCHAR(255),
    [VASTGESTELDEWAARDE] VARCHAR(255),
    [WOZOBJECTNUMMER] VARCHAR(255)
);

CREATE TABLE [OPENBARERUIMTE] (
    [OPENBARERUIMTE_ID] INT PRIMARY KEY,
    [BEGINGELDIGHEID] DATE,
    [DATUMEINDE] DATE,
    [DATUMINGANG] DATE,
    [DOCUMENTDATUM] DATE,
    [DOCUMENTNUMMER] INT,
    [EINDGELDIGHEID] DATE,
    [GECONSTATEERD_ENUM_ID] INT,
    [GEOMETRIE] GEOMETRY,
    [HUISNUMMERRANGE_EVEN_EN_ONEVEN_NUMMERS] VARCHAR(255),
    [HUISNUMMERRANGE_EVEN_NUMMERS] VARCHAR(255),
    [HUISNUMMERRANGE_ONEVEN_NUMMERS] VARCHAR(255),
    [IDENTIFICATIE] VARCHAR(255),
    [LABELNAAM] VARCHAR(80),
    [NAAMOPENBARERUIMTE] VARCHAR(80),
    [STATUS] VARCHAR(255),
    [STRAATCODE] VARCHAR(80),
    [STRAATNAAM] VARCHAR(255),
    [TYPEOPENBARERUIMTE] VARCHAR(255),
    [VERSIE] INT,
    [WEGSEGMENT] VARCHAR(255)
);

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

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

CREATE TABLE [NUMMERAANDUIDING] (
    [NUMMERAANDUIDING_ID] INT PRIMARY KEY,
    [BEGINGELDIGHEID] DATE,
    [DATUMEINDE] DATE,
    [DATUMINGANG] DATE,
    [DOCUMENTDATUM] DATE,
    [DOCUMENTNUMMER] INT,
    [EINDEGELDIGHEID] DATE,
    [GECONSTATEERD_ENUM_ID] INT,
    [GEOMETRIE] GEOMETRY,
    [HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID] INT,
    [HUISLETTER] VARCHAR(255),
    [HUISNUMMER] VARCHAR(255),
    [HUISNUMMERTOEVOEGING] VARCHAR(255),
    [IDENTIFICATIE] VARCHAR(255),
    [LIGT_AAN_OPENBARERUIMTE_ID] INT,
    [POSTCODE] VARCHAR(255),
    [STATUS] VARCHAR(255),
    [TYPEADRESSEERBAAROBJECT] VARCHAR(255),
    [VERSIE] INT,
    [VERWIJST_NAAR_LOCATIEAANDUIDINGWOZOBJECT_ID] INT
);

CREATE TABLE [SOORTWOZOBJECT] (
    [SOORTWOZOBJECT_ID] INT PRIMARY KEY,
    [DATUMBEGINGELDIGHEIDSOORTOBJECTCODE] DATE,
    [DATUMEINDEGELDIGHEIDSOORTOBJECTCODE] DATE,
    [NAAMSOORTOBJECTCODE] VARCHAR(255),
    [OPMERKINGENSOORTOBJECTCODE] VARCHAR(255),
    [SOORTOBJECTCODE] VARCHAR(255)
);

CREATE TABLE [BOOLEAN_ENUM] (
    [BOOLEAN_ENUM_ID] INT PRIMARY KEY,
    VALUE VARCHAR(255)
);

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

CREATE TABLE [WOZ_WAARDE] (
    [WOZ_WAARDE_ID] INT PRIMARY KEY,
    [DATUMPEILINGTOESTAND] DATE,
    [DATUMWAARDEPEILING] DATE,
    [IS_VOOR_WOZ_OBJECT_ID] INT,
    [STATUSBESCHIKKING] VARCHAR(255),
    [VASTGESTELDEWAARDE] VARCHAR(255)
);

CREATE TABLE [RECHTSPERSOON] (
    [RECHTSPERSOON_ID] INT 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 [WOZ_DEELOBJECT] (
    [WOZ_DEELOBJECT_ID] INT PRIMARY KEY,
    [BESTAAT_UIT_ADRESSEERBAAROBJECT_ID] INT,
    [BESTAAT_UIT_PAND_ID] INT,
    [CODEWOZDEELOBJECT] VARCHAR(255),
    [DATUMBEGINGELDIGHEIDDEELOBJECT] DATE,
    [DATUMEINDEGELDIGHEIDDEELOBJECT] DATE,
    [IS_ONDERDEEL_VAN_WOZ_OBJECT_ID] INT,
    [STATUSWOZDEELOBJECT] VARCHAR(255),
    [WOZDEELOBJECTNUMMER] VARCHAR(255)
);

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

CREATE TABLE [LOCATIEAANDUIDINGWOZOBJECT] (
    [LOCATIEAANDUIDINGWOZOBJECT_ID] INT PRIMARY KEY,
    [DATUMBEGINGELDIGHEID] DATE,
    [DATUMEINDEGELDIGHEID] DATE,
    [HEEFT_WOZ_OBJECT_ID] INT,
    [LOCATIEOMSCHRIJVING] VARCHAR(100),
    [PRIMAIR_ENUM_ID] INT
);

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)

