diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml new file mode 100644 index 0000000..8322772 --- /dev/null +++ b/.github/workflows/build-and-deploy.yml @@ -0,0 +1,63 @@ +name: Build and Deploy +on: + pull_request: + branches: + - master + push: + branches: + - master +env: + APP_NAME: DanishCvr + VERSION: 1.0.0-preview + NUGET_HOST: https://api.nuget.org/v3/index.json + NUGET_APIKEY: ${{ secrets.NUGET_APIKEY }} +jobs: + build-and-deploy: + runs-on: ubuntu-latest + permissions: + contents: write + concurrency: + group: ${{ github.repository }} + cancel-in-progress: true + steps: + - uses: actions/checkout@v6 + + - name: Build and Pack + shell: pwsh + run: | + dotnet build -c Release .\$env:APP_NAME.sln; + if ($LastExitCode -ne 0) + { + throw "Build failed"; + }; + + dotnet pack .\$env:APP_NAME\$env:APP_NAME.csproj -c Release --output nupkgs /p:PackageVersion=$env:VERSION; + if ($LastExitCode -ne 0) + { + throw "Pack failed"; + }; + + # - name: Push NuGet + # if: github.ref == 'refs/heads/master' + # shell: pwsh + # run: | + # dotnet nuget push "nupkgs/*.nupkg" -s $env:NUGET_HOST -k $env:NUGET_APIKEY --skip-duplicate + + # if ($LastExitCode -ne 0) + # { + # throw "Publish failed"; + # }; + + # - name: GitHub Release + # if: github.ref == 'refs/heads/master' + # uses: ncipollo/release-action@v1 + # with: + # tag: v${{ env.VERSION }} + # name: "Release ${{ env.VERSION }}" + # body: | + # Version: ${{ env.VERSION }} + # Commit: ${{ github.sha }} + # artifacts: "nupkgs/*" + # token: ${{ secrets.GITHUB_TOKEN }} + # draft: false + # prerelease: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b74d95d --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +**/*.user +**/*.userprefs +*.user +*.userprefs +*.suo +*.tss +*.vs +_ReSharper* +**/bin +**/obj +*.DotSettings.User +**/wwwroot/lib +.vs +packages +.env diff --git a/.tests/Tests.DanishCvr/BaseTests.cs b/.tests/Tests.DanishCvr/BaseTests.cs new file mode 100644 index 0000000..b75a7e4 --- /dev/null +++ b/.tests/Tests.DanishCvr/BaseTests.cs @@ -0,0 +1,71 @@ +using System; +using System.IO; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using DanishCvr.Extensions; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Newtonsoft.Json; +using DanishCvr.Responses.Models; + +namespace Tests.DanishCvr; + +public class BaseTests +{ + private const string DIRECTORY = ".test-output"; + + protected IServiceProvider serviceProvider; + + [TestInitialize] + public void TestSetup() + { + var configurationRoot = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) + .AddEnvironmentVariables() + .AddUserSecrets(Assembly.GetExecutingAssembly()) + .Build(); + + var services = new ServiceCollection(); + + services + .AddSingleton(configurationRoot) + .AddLogging(x => x + .AddConfiguration(configurationRoot.GetSection("Logging")) + .AddConsole()); + + var logger = services + .BuildServiceProvider() + .GetRequiredService() + .CreateLogger("Test"); + + services + .AddSingleton(logger); + + services + .AddDanishCvr(); + + this.serviceProvider = services + .BuildServiceProvider(); + } + + protected Task SaveJsonOrDefault(BaseDebugResult result, [CallerMemberName]string callerMethodName = "") + { + if (result == null) + { + return Task.CompletedTask; + } + + if (!Directory.Exists(DIRECTORY)) + { + Directory.CreateDirectory(DIRECTORY); + } + + var contents = JsonConvert.SerializeObject(result, Formatting.Indented); + + return File.WriteAllTextAsync($"./{DIRECTORY}/{callerMethodName}.json", contents); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrBatchServiceTests.cs b/.tests/Tests.DanishCvr/DanishCvrBatchServiceTests.cs new file mode 100644 index 0000000..94a6257 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrBatchServiceTests.cs @@ -0,0 +1,51 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Interfaces; +using DanishCvr.Models.Debug; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +[TestClass] +public class DanishCvrBatchServiceTests : BaseTests +{ + private IDanishCvrBatchService DanishCvrBatchService => this.serviceProvider.GetService(); + + [TestMethod] + public async Task SearchAllTest() + { + await Task.CompletedTask; + + const int MAX_ITERATIONS = 1; + const int SKIP_ITERATIONS = 0; + + var debugInformation = await this.DanishCvrBatchService + .SearchAllAsync(x => + { + Debug.WriteLine($"callback: {x.Count()}"); + }, MAX_ITERATIONS, SKIP_ITERATIONS, 2); + + this.PrintDebugInformation(debugInformation); + } + + private void PrintDebugInformation(DebugInformation debugInformation) + { + if (debugInformation == null) + throw new ArgumentNullException(nameof(debugInformation)); + + foreach (var debugHovedType in debugInformation.HovedTyper) + { + Debug.WriteLine($"{debugHovedType.Type}: {debugHovedType.Count}"); + + foreach (var debugAttribute in debugHovedType.Attributes) + { + var registrationNumbers = string.Join(',', debugAttribute.SampleRegistrationNumbers); + + Debug.WriteLine($" {debugAttribute.Value}: {debugAttribute.Count} ({registrationNumbers})"); + } + } + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompleteCompany.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompleteCompany.cs new file mode 100644 index 0000000..3110f61 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompleteCompany.cs @@ -0,0 +1,67 @@ +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Requests; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task AutoCompleteCompanyTest() + { + const string NAME = "Vivet"; + + var response = await this.DanishCvrService + .AutoCompleteCompaniesAsync(new AutoCompleteCompaniesRequest + { + Names = + { + Name = NAME + } + }); + + Assert.IsNotNull(response); + Assert.AreEqual(10, response.Results.Count()); + } + + [TestMethod] + public async Task AutoCompleteCompanyWhenAlternativeNameTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task AutoCompleteCompanyWhenAlternativeNameAndNotIncludedTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task AutoCompleteCompanyWhenHistoricNameTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task AutoCompleteCompanyWhenHistoricNameAndNotIncludedTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task AutoCompleteCompanyWhenIsActiveTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompletePersons.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompletePersons.cs new file mode 100644 index 0000000..7388ca6 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.AutoCompletePersons.cs @@ -0,0 +1,24 @@ +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Requests; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task AutoCompletePersonTest() + { + const string NAME = "Michael Viv"; + + var response = await this.DanishCvrService + .AutoCompletePersonsAsync(new AutoCompletePersonsRequest + { + Name = NAME + }); + + Assert.IsNotNull(response); + Assert.AreEqual(4, response.Results.Count()); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanies.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanies.cs new file mode 100644 index 0000000..2e348c0 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanies.cs @@ -0,0 +1,25 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyWithRegistrationNumbersTest() + { + const string CVR_NUMMER_1 = "10198054"; + const string CVR_NUMMER_2 = "21705500"; + const string CVR_NUMMER_3 = "10191246"; + + var response = await this.DanishCvrService + .GetCompaniesAsync([CVR_NUMMER_1, CVR_NUMMER_2, CVR_NUMMER_3]); + + Assert.IsNotNull(response); + + Assert.IsTrue(response.Results.Any(x => x.Company.RegistrationNumber == CVR_NUMMER_1)); + Assert.IsTrue(response.Results.Any(x => x.Company.RegistrationNumber == CVR_NUMMER_2)); + Assert.IsTrue(response.Results.Any(x => x.Company.RegistrationNumber == CVR_NUMMER_3)); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompany.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompany.cs new file mode 100644 index 0000000..5849127 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompany.cs @@ -0,0 +1,2109 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Responses.Models.Enums; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyTest() + { + const string CVR_NUMMER = "42989894"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(CVR_NUMMER, response.Result.Company.RegistrationNumber); + } + + [TestMethod] + public async Task GetCompanyWhenNamesTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Names.Current); + Assert.AreEqual("MICROSOFT DANMARK ApS", response.Result.Company.Names.Current.Value); + Assert.AreEqual(new DateOnly(1990, 4, 24), response.Result.Company.Names.Current.Period.From); + Assert.IsNull(response.Result.Company.Names.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Names.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.Company.Names.Latest); + Assert.AreEqual("MICROSOFT DANMARK ApS", response.Result.Company.Names.Latest.Value); + Assert.AreEqual(new DateOnly(1990, 4, 24), response.Result.Company.Names.Latest.Period.From); + Assert.IsNull(response.Result.Company.Names.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Names.Latest.UpdatedAt); + + Assert.AreEqual(1, response.Result.Company.Names.HistoricNames.Count()); + Assert.AreEqual(13, response.Result.Company.AlternativeNames.Names.Count()); + Assert.AreEqual(0, response.Result.Company.AlternativeNames.HistoricNames.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenNamesAndInactiveTest() + { + const string CVR_NUMMER = "37388149"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Names.Current); + + Assert.IsNotNull(response.Result.Company.Names.Latest); + Assert.AreEqual(".dk Invest Holding ivs", response.Result.Company.Names.Latest.Value); + Assert.AreEqual(new DateOnly(2016, 01, 22), response.Result.Company.Names.Latest.Period.From); + Assert.AreEqual(new DateOnly(2017, 11, 17), response.Result.Company.Names.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Names.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.Company.Names.HistoricNames.Count()); + Assert.AreEqual(0, response.Result.Company.AlternativeNames.Names.Count()); + Assert.AreEqual(1, response.Result.Company.AlternativeNames.HistoricNames.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenAddressesTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Addresses.Current); + + Assert.AreEqual("DK", response.Result.Company.Addresses.Current.Country); + Assert.AreEqual("Kgs. Lyngby", response.Result.Company.Addresses.Current.City.Name); + Assert.AreEqual("2800", response.Result.Company.Addresses.Current.City.PostalCode); + Assert.AreEqual("Kanalvej", response.Result.Company.Addresses.Current.StreetName); + Assert.AreEqual("7", response.Result.Company.Addresses.Current.HouseNumberFrom); + + Assert.AreEqual("DK", response.Result.Company.Addresses.Latest.Country); + Assert.AreEqual("Kgs. Lyngby", response.Result.Company.Addresses.Latest.City.Name); + Assert.AreEqual("2800", response.Result.Company.Addresses.Latest.City.PostalCode); + Assert.AreEqual("Kanalvej", response.Result.Company.Addresses.Latest.StreetName); + Assert.AreEqual("7", response.Result.Company.Addresses.Latest.HouseNumberFrom); + + Assert.AreEqual(2, response.Result.Company.Addresses.HistoricAddresses.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenAddressesAndInactiveTest() + { + const string CVR_NUMMER = "37388149"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Addresses.Current); + + Assert.IsNotNull(response.Result.Company.Addresses.Latest); + Assert.AreEqual("DK", response.Result.Company.Addresses.Latest.Country); + Assert.AreEqual("Greve", response.Result.Company.Addresses.Latest.City.Name); + Assert.AreEqual("2670", response.Result.Company.Addresses.Latest.City.PostalCode); + Assert.AreEqual("Korskildelund", response.Result.Company.Addresses.Latest.StreetName); + Assert.AreEqual("6", response.Result.Company.Addresses.Latest.HouseNumberFrom); + + Assert.AreEqual(2, response.Result.Company.Addresses.HistoricAddresses.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenPhoneNumbersTest() + { + const string CVR_NUMMER = "10192676"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result.Company.PhoneNumbers.Current); + Assert.AreEqual("49288888", response.Result.Company.PhoneNumbers.Current.Value); + Assert.IsFalse(response.Result.Company.PhoneNumbers.Current.IsUnlisted); + Assert.AreEqual(new DateOnly(2017, 9, 1), response.Result.Company.PhoneNumbers.Current.Period.From); + Assert.IsNull(response.Result.Company.PhoneNumbers.Current.Period.To); + Assert.IsNotNull(response.Result.Company.PhoneNumbers.Current.UpdatedAt); + Assert.AreEqual(1, response.Result.Company.PhoneNumbers.HistoricPhoneNumbers.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenPhoneNumbersAndInactiveTest() + { + const string CVR_NUMMER = "37114111"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.PhoneNumbers.Current); + Assert.AreEqual(2, response.Result.Company.PhoneNumbers.HistoricPhoneNumbers.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFaxNumbersTest() + { + const string CVR_NUMMER = "10191246"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.FaxNumbers.Current); + Assert.AreEqual("35353168", response.Result.Company.FaxNumbers.Current.Value); + Assert.IsFalse(response.Result.Company.FaxNumbers.Current.IsUnlisted); + Assert.AreEqual(new DateOnly(2004, 12, 10), response.Result.Company.FaxNumbers.Current.Period.From); + Assert.IsNull(response.Result.Company.FaxNumbers.Current.Period.To); + Assert.IsNotNull(response.Result.Company.FaxNumbers.Current.UpdatedAt); + Assert.AreEqual(0, response.Result.Company.FaxNumbers.HistoricFaxNumbers.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFaxNumbersAndInactiveTest() + { + const string CVR_NUMMER = "37114111"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.FaxNumbers); + } + + [TestMethod] + public async Task GetCompanyWhenEmailAddressesTest() + { + const string CVR_NUMMER = "10196175"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.EmailAddresses.Current); + Assert.AreEqual("info@blomfelt.dk", response.Result.Company.EmailAddresses.Current.Value); + Assert.IsFalse(response.Result.Company.EmailAddresses.Current.IsUnlisted); + Assert.AreEqual(new DateOnly(2025, 1, 16), response.Result.Company.EmailAddresses.Current.Period.From); + Assert.IsNull(response.Result.Company.EmailAddresses.Current.Period.To); + Assert.IsNotNull(response.Result.Company.EmailAddresses.Current.UpdatedAt); + Assert.AreEqual(2, response.Result.Company.EmailAddresses.HistoricEmailAddresses.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenEmailAddressesAndInactiveTest() + { + const string CVR_NUMMER = "37114111"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.EmailAddresses.Current); + Assert.AreEqual(3, response.Result.Company.EmailAddresses.HistoricEmailAddresses.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenWebsitesTest() + { + const string CVR_NUMMER = "10195616"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Websites.Current); + Assert.AreEqual("www.sanktpetriskole.dk", response.Result.Company.Websites.Current.Value); + Assert.AreEqual(new DateOnly(2024, 11, 7), response.Result.Company.Websites.Current.Period.From); + Assert.IsNull(response.Result.Company.Websites.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Websites.Current.UpdatedAt); + Assert.AreEqual(0, response.Result.Company.Websites.HistoricWebsites.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenWebsitesAndInactiveTest() + { + const string CVR_NUMMER = "37114111"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Websites.Current); + Assert.AreEqual(1, response.Result.Company.Websites.HistoricWebsites.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenPurposeTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Purpose.Current); + Assert.IsNotNull(response.Result.Company.Purpose.Latest); + Assert.AreEqual("Selskabets formål er salg af software og tilbehør til computers og service i forbindelse hermed samt anden handel og service", response.Result.Company.Purpose.Current.Value); + Assert.AreEqual("Selskabets formål er salg af software og tilbehør til computers og service i forbindelse hermed samt anden handel og service", response.Result.Company.Purpose.Latest.Value); + Assert.AreEqual(0, response.Result.Company.Purpose.HistoricPurposes.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenPurposeAndInActiveTest() + { + const string CVR_NUMMER = "37114111"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Purpose.Current); + Assert.IsNotNull(response.Result.Company.Purpose.Latest); + Assert.AreEqual("Selskabets formål er at drive en webshop som skal sælge lukus barbergrej til B2C, samt enhver i forbindelse hermed stående virksomhed.", response.Result.Company.Purpose.Latest.Value); + Assert.AreEqual(1, response.Result.Company.Purpose.HistoricPurposes.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialPurposeTest() + { + const string CVR_NUMMER = "12626509"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose); + + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Current); + Assert.AreEqual("PI - Bank", response.Result.Company.Purpose.FinancialPurpose.Current.Value); + Assert.AreEqual(new DateOnly(1986, 1, 2), response.Result.Company.Purpose.FinancialPurpose.Current.Period.From); + Assert.IsNull(response.Result.Company.Purpose.FinancialPurpose.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Latest); + Assert.AreEqual("PI - Bank", response.Result.Company.Purpose.FinancialPurpose.Latest.Value); + Assert.AreEqual(new DateOnly(1986, 1, 2), response.Result.Company.Purpose.FinancialPurpose.Current.Period.From); + Assert.IsNull(response.Result.Company.Purpose.FinancialPurpose.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Latest.UpdatedAt); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialPurposeAndInactiveTest() + { + const string CVR_NUMMER = "12718500"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose); + Assert.IsNull(response.Result.Company.Purpose.FinancialPurpose.Current); + + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Latest); + Assert.AreEqual("Pantebrselsk", response.Result.Company.Purpose.FinancialPurpose.Latest.Value); + Assert.AreEqual(new DateOnly(1989, 2, 10), response.Result.Company.Purpose.FinancialPurpose.Latest.Period.From); + Assert.AreEqual(new DateOnly(2015, 6, 25), response.Result.Company.Purpose.FinancialPurpose.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Purpose.FinancialPurpose.Latest.UpdatedAt); + } + + [TestMethod] + public async Task GetCompanyWhenIndustriesTest() + { + const string CVR_NUMMER = "12626509"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Kreditmarked og forsikring (65)", response.Result.Company.Industry.Notes); + + Assert.IsNotNull(response.Result.Company.Industry.Current); + Assert.AreEqual("641900", response.Result.Company.Industry.Current.Code); + Assert.AreEqual("Andre pengeinstitutters aktiviteter", response.Result.Company.Industry.Current.Description); + Assert.AreEqual(new DateOnly(2025, 1, 1), response.Result.Company.Industry.Current.Period.From); + Assert.IsNull(response.Result.Company.Industry.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Industry.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.Company.Industry.Latest); + Assert.AreEqual("641900", response.Result.Company.Industry.Latest.Code); + Assert.AreEqual("Andre pengeinstitutters aktiviteter", response.Result.Company.Industry.Latest.Description); + Assert.AreEqual(new DateOnly(2025, 1, 1), response.Result.Company.Industry.Latest.Period.From); + Assert.IsNull(response.Result.Company.Industry.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Industry.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.Company.Industry.HistoricIndustries.Count()); + Assert.AreEqual(1, response.Result.Company.Industry.SecondaryIndustries.Count()); + Assert.AreEqual(4, response.Result.Company.Industry.HistoricSecondaryIndustries.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenIndustriesAndInactiveTest() + { + const string CVR_NUMMER = "12718500"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Industry.Notes); + Assert.IsNull(response.Result.Company.Industry.Current); + + Assert.IsNotNull(response.Result.Company.Industry.Latest); + Assert.AreEqual("649900", response.Result.Company.Industry.Latest.Code); + Assert.AreEqual("Anden finansiel formidling undtagen forsikring og pensionsforsikring, i.a.n.", response.Result.Company.Industry.Latest.Description); + Assert.AreEqual(new DateOnly(2008, 1, 1), response.Result.Company.Industry.Latest.Period.From); + Assert.AreEqual(new DateOnly(2015, 6, 25), response.Result.Company.Industry.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Industry.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.Company.Industry.HistoricIndustries.Count()); + Assert.AreEqual(0, response.Result.Company.Industry.SecondaryIndustries.Count()); + Assert.AreEqual(0, response.Result.Company.Industry.HistoricSecondaryIndustries.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Type.Current); + Assert.AreEqual("APS", response.Result.Company.Type.Current.Abbreviation); + Assert.AreEqual("Anpartsselskab", response.Result.Company.Type.Current.Description); + Assert.AreEqual(new DateOnly(1989, 11, 1), response.Result.Company.Type.Current.Period.From); + Assert.IsNull(response.Result.Company.Type.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Type.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.Company.Type.Latest); + Assert.AreEqual("APS", response.Result.Company.Type.Latest.Abbreviation); + Assert.AreEqual("Anpartsselskab", response.Result.Company.Type.Latest.Description); + Assert.AreEqual(new DateOnly(1989, 11, 1), response.Result.Company.Type.Latest.Period.From); + Assert.IsNull(response.Result.Company.Type.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Type.Latest.UpdatedAt); + + Assert.AreEqual(0, response.Result.Company.Type.HistoricTypes.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndInactiveTest() + { + const string CVR_NUMMER = "38696769"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Type.Current); + + Assert.IsNotNull(response.Result.Company.Type.Latest); + Assert.AreEqual("APS", response.Result.Company.Type.Latest.Abbreviation); + Assert.AreEqual("Anpartsselskab", response.Result.Company.Type.Latest.Description); + Assert.AreEqual(new DateOnly(2021, 6, 20), response.Result.Company.Type.Latest.Period.From); + Assert.AreEqual(new DateOnly(2023, 4, 21), response.Result.Company.Type.Latest.Period.To); + Assert.IsNotNull(response.Result.Company.Type.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.Company.Type.HistoricTypes.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsIsGovernmentalTest() + { + const string CVR_NUMMER = "12473192"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsTrue(response.Result.Company.Type.IsGovernmental); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsIsGovernmentalAndInactiveTest() + { + const string CVR_NUMMER = "10051460"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsTrue(response.Result.Company.Type.IsGovernmental); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsIsGovernmentalAndInactiveAndDatesMismatchTest() + { + const string CVR_NUMMER = "12070802"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Type.IsGovernmental); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsPubliclyListedTest() + { + const string CVR_NUMMER = "61126228"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Type.IsPubliclyListed); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsPubliclyListedAndInactiveTest() + { + const string CVR_NUMMER = "24257967"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsFalse(response.Result.Company.Type.IsPubliclyListed); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsSocialEconomicTest() + { + const string CVR_NUMMER = "31858453"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsTrue(response.Result.Company.Type.IsSocialEconomic); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsSocialEconomicAndInactiveTest() + { + const string CVR_NUMMER = "17195549"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsTrue(response.Result.Company.Type.IsSocialEconomic); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsSocialEconomicAndInactiveAndDatesMismatchTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsCertifiedAuditorTest() + { + const string CVR_NUMMER = "10623685"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Type.IsCertifiedAuditor); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsCertifiedAuditorAndInactiveTest() + { + const string CVR_NUMMER = "34354170"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsTrue(response.Result.Company.Type.IsCertifiedAuditor); + } + + [TestMethod] + public async Task GetCompanyWhenBusinessTypesAndIsCertifiedAuditorAndInactiveAndDatesMismatchTest() + { + const string CVR_NUMMER = "10230101"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Type.IsCertifiedAuditor); + } + + [TestMethod] + public async Task GetCompanyWhenStatusTest() + { + const string CVR_NUMMER = "12626509"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Status.Current); + Assert.AreEqual("Normal", response.Result.Company.Status.Current.Value); + Assert.AreEqual(new DateOnly(1986, 1, 2), response.Result.Company.Status.Current.Period.From); + Assert.IsNull(response.Result.Company.Status.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Status.Current.UpdatedAt); + + Assert.AreEqual(0, response.Result.Company.Status.HistoricStatuses.Count()); + + Assert.IsTrue(response.Result.Company.Status.IsActive); + } + + [TestMethod] + public async Task GetCompanyWhenStatusAndInactiveTest() + { + const string CVR_NUMMER = "34706409"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNotNull(response.Result.Company.Status.Current); + Assert.AreEqual("Tvangsopløst", response.Result.Company.Status.Current.Value); + Assert.AreEqual(new DateOnly(2013, 9, 30), response.Result.Company.Status.Current.Period.From); + Assert.AreEqual(new DateOnly(2013, 9, 30), response.Result.Company.Status.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Status.Current.UpdatedAt); + + Assert.AreEqual(3, response.Result.Company.Status.HistoricStatuses.Count()); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + } + + [TestMethod] + public async Task GetCompanyWhenStatusAndCreditStatusTest() + { + const string CVR_NUMMER = "14357890"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Status.CreditStatus.Current); + Assert.AreEqual("1", response.Result.Company.Status.CreditStatus.Current.Code); + Assert.AreEqual("Konkurs", response.Result.Company.Status.CreditStatus.Current.Text); + Assert.AreEqual("Ophævelse af dekret", response.Result.Company.Status.CreditStatus.Current.Notes); + Assert.AreEqual(new DateOnly(2009, 6, 9), response.Result.Company.Status.CreditStatus.Current.Period.From); + Assert.IsNull(response.Result.Company.Status.CreditStatus.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Status.CreditStatus.Current.UpdatedAt); + } + + [TestMethod] + public async Task GetCompanyWhenStatusAndCreditStatusAndInactiveTest() + { + const string CVR_NUMMER = "14187340"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNotNull(response.Result.Company.Status.CreditStatus.Current); + Assert.AreEqual("3", response.Result.Company.Status.CreditStatus.Current.Code); + Assert.AreEqual("Tvangsakkord", response.Result.Company.Status.CreditStatus.Current.Text); + Assert.AreEqual("Regnskab og boafslutning", response.Result.Company.Status.CreditStatus.Current.Notes); + Assert.AreEqual(new DateOnly(2017, 11, 10), response.Result.Company.Status.CreditStatus.Current.Period.From); + Assert.IsNull(response.Result.Company.Status.CreditStatus.Current.Period.To); + Assert.IsNotNull(response.Result.Company.Status.CreditStatus.Current.UpdatedAt); + } + + [TestMethod] + public async Task GetCompanyWhenEmployementTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Employment.Employees.Current.NumberOfEmployees > 400); + Assert.IsTrue(response.Result.Company.Employment.Employees.Current.NumberOfEmployees < 600); + Assert.IsTrue(response.Result.Company.Employment.Employees.Current.NumberOfFulltimePositions > 400); + Assert.IsTrue(response.Result.Company.Employment.Employees.Current.NumberOfFulltimePositions < 600); + Assert.IsNotNull(response.Result.Company.Employment.Employees.Current.UpdatedAt); + Assert.IsTrue(response.Result.Company.Employment.Employees.HistoricEmployees.Count() > 182); + } + + [TestMethod] + public async Task GetCompanyWhenEmploymentAndInactiveTest() + { + const string CVR_NUMMER = "38696769"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.Employment.Employees.Current); + Assert.AreEqual(6, response.Result.Company.Employment.Employees.HistoricEmployees.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenManagersTest() + { + const string CVR_NUMMER = "12861303"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Employment.Managers.Current); + Assert.AreEqual(1, response.Result.Company.Employment.Managers.Current.Count()); + Assert.AreEqual(0, response.Result.Company.Employment.Managers.HistoricManagers.Count()); + + var manager = response.Result.Company.Employment.Managers.Current.FirstOrDefault(); + Assert.IsNotNull(manager); + Assert.AreEqual("Jørgen Kent Jensen", manager.Name); + Assert.AreEqual("Daglig ledelse", manager.Title); + Assert.IsNull(manager.ElectionMethod); + } + + [TestMethod] + public async Task GetCompanyWhenRegisteredCapitalTest() + { + const string CVR_NUMMER = "30276582"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.RegisteredCapital.Current.Value); + Assert.AreEqual("DKK", response.Result.Company.RegisteredCapital.Current.Currency); + + Assert.AreEqual(26, response.Result.Company.RegisteredCapital.HistoricRegisteredCapitals.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenRegisteredCapitalAndInactiveTest() + { + const string CVR_NUMMER = "38696769"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.RegisteredCapital.Current); + Assert.AreEqual(2, response.Result.Company.RegisteredCapital.HistoricRegisteredCapitals.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenRegisteredCapitalAndPartiallyPaidTest() + { + const string CVR_NUMMER = "34688362"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.RegisteredCapital.IsPartiallyPaid); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialYearTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.FinancialYear.Current); + Assert.AreEqual(7, response.Result.Company.FinancialYear.Current.Begin.Month); + Assert.AreEqual(1, response.Result.Company.FinancialYear.Current.Begin.Day); + Assert.AreEqual(6, response.Result.Company.FinancialYear.Current.End.Month); + Assert.AreEqual(30, response.Result.Company.FinancialYear.Current.End.Day); + + Assert.IsNotNull(response.Result.Company.FinancialYear.Latest); + Assert.AreEqual(7, response.Result.Company.FinancialYear.Latest.Begin.Month); + Assert.AreEqual(1, response.Result.Company.FinancialYear.Latest.Begin.Day); + Assert.AreEqual(6, response.Result.Company.FinancialYear.Latest.End.Month); + Assert.AreEqual(30, response.Result.Company.FinancialYear.Latest.End.Day); + + Assert.AreEqual(new DateOnly(1989, 11, 1), response.Result.Company.FinancialYear.FirstFinancialYear.From); + Assert.AreEqual(new DateOnly(1990, 6, 30), response.Result.Company.FinancialYear.FirstFinancialYear.To); + + Assert.AreEqual(0, response.Result.Company.FinancialYear.HistoricFinancialYears.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialYearAndInactiveTest() + { + const string CVR_NUMMER = "34354170"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.FinancialYear.Current); + + Assert.IsNotNull(response.Result.Company.FinancialYear.Latest); + Assert.AreEqual(1, response.Result.Company.FinancialYear.Latest.Begin.Month); + Assert.AreEqual(1, response.Result.Company.FinancialYear.Latest.Begin.Day); + Assert.AreEqual(12, response.Result.Company.FinancialYear.Latest.End.Month); + Assert.AreEqual(31, response.Result.Company.FinancialYear.Latest.End.Day); + + Assert.AreEqual(new DateOnly(2011, 10, 1), response.Result.Company.FinancialYear.FirstFinancialYear.From); + Assert.AreEqual(new DateOnly(2012, 12, 31), response.Result.Company.FinancialYear.FirstFinancialYear.To); + + Assert.AreEqual(1, response.Result.Company.FinancialYear.HistoricFinancialYears.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialYearAndOngoingTransitionPeriodTest() + { + const string CVR_NUMMER = "14531688"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.FinancialYear.OngoingTransitionPeriod); + Assert.AreEqual(new DateOnly(1996, 5, 1), response.Result.Company.FinancialYear.OngoingTransitionPeriod.From); + Assert.AreEqual(new DateOnly(1996, 6, 30), response.Result.Company.FinancialYear.OngoingTransitionPeriod.To); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialYearAndOngoingTransitionPeriodAndInactiveTest() + { + const string CVR_NUMMER = "14511490"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsNull(response.Result.Company.FinancialYear.OngoingTransitionPeriod); + } + + [TestMethod] + public async Task GetCompanyWhenFinancialYearAndNotesTest() + { + const string CVR_NUMMER = "25559177"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("søndag efter den lørdag der ligger nærmest den sidste dag i marts til den lørdag der ligger nærmest den sidste dag i marts det efterfølgende år.", response.Result.Company.FinancialYear.Notes); + } + + [TestMethod] + public async Task GetCompanyWhenAntiMoneyLaunderingTest() + { + const string CVR_NUMMER = "14194711"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Registret til bekæmpelse af hvidvask", response.Result.Company.AntiMoneyLaundering.Text); + } + + [TestMethod] + public async Task GetCompanyWhenAntiMoneyLaunderingAndInactiveTest() + { + const string CVR_NUMMER = "17842579"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.AreEqual("Registret til bekæmpelse af hvidvask", response.Result.Company.AntiMoneyLaundering.Text); + Assert.AreEqual(1, response.Result.Company.AntiMoneyLaundering.Activities.Count()); + Assert.AreEqual("Selskabsfabrikant", response.Result.Company.AntiMoneyLaundering.Activities.FirstOrDefault()); + } + + [TestMethod] + public async Task GetCompanyWhenAntiMoneyLaunderingAndIsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancingTest() + { + const string CVR_NUMMER = "14194711"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.AntiMoneyLaundering.IsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing); + } + + [TestMethod] + public async Task GetCompanyWhenAntiMoneyLaunderingAndActivitiesTest() + { + const string CVR_NUMMER = "14149341"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(1, response.Result.Company.AntiMoneyLaundering.Activities.Count()); + Assert.AreEqual("Selskabsfabrikant", response.Result.Company.AntiMoneyLaundering.Activities.FirstOrDefault()); + } + + [TestMethod] + public async Task GetCompanyWhenAntiMoneyLaunderingAndAntiMoneyLaunderingAppointeeTest() + { + const string CVR_NUMMER = "14149341"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.AntiMoneyLaundering.AntiMoneyLaunderingAppointees.Current); + Assert.AreEqual("Leder, Reel ejer", response.Result.Company.AntiMoneyLaundering.AntiMoneyLaunderingAppointees.Current.Title); + } + + [TestMethod] + public async Task GetCompanyWhenHasAuditTest() + { + const string CVR_NUMMER = "17650483"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Auditing.HasAudit); + } + + [TestMethod] + public async Task GetCompanyWhenHasAuditAndInactiveTest() + { + const string CVR_NUMMER = "17668382"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsTrue(response.Result.Company.Auditing.HasAudit); + } + + [TestMethod] + public async Task GetCompanyWhenAuditorTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Auditing.Auditor); + Assert.AreEqual("DELOITTE STATSAUTORISERET REVISIONSPARTNERSELSKAB", response.Result.Company.Auditing.Auditor.Current.Name); + Assert.AreEqual("5651072", response.Result.Company.Auditing.Auditor.Current.ExternalId); + Assert.AreEqual("Weidekampsgade", response.Result.Company.Auditing.Auditor.Current.Address.StreetName); + Assert.AreEqual("København S", response.Result.Company.Auditing.Auditor.Current.Address.City.Name); + Assert.AreEqual(EntityType.Company, response.Result.Company.Auditing.Auditor.Current.EntityType); + Assert.AreEqual("33963556", response.Result.Company.Auditing.Auditor.Current.RegistrationNumber); + + Assert.AreEqual(3, response.Result.Company.Auditing.Auditor.HistoricAuditors.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenSustainabilityAuditorTest() + { + const string CVR_NUMMER = "64806815"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Auditing.SustainabilityAuditor.Current); + Assert.AreEqual("PRICEWATERHOUSECOOPERS STATSAUTORISERET REVISIONSPARTNERSELSKAB", response.Result.Company.Auditing.SustainabilityAuditor.Current.Name); + Assert.AreEqual("4000769917", response.Result.Company.Auditing.SustainabilityAuditor.Current.ExternalId); + Assert.AreEqual("Strandvejen", response.Result.Company.Auditing.SustainabilityAuditor.Current.Address.StreetName); + Assert.AreEqual("Hellerup", response.Result.Company.Auditing.SustainabilityAuditor.Current.Address.City.Name); + Assert.AreEqual(EntityType.Company, response.Result.Company.Auditing.SustainabilityAuditor.Current.EntityType); + Assert.AreEqual("33771231", response.Result.Company.Auditing.SustainabilityAuditor.Current.RegistrationNumber); + + Assert.AreEqual(0, response.Result.Company.Auditing.SustainabilityAuditor.HistoricAuditors.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenIsOvertakenByFinansialStabilityAuthorityTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //const string CVR_NUMMER = ""; + + //var response = await this.DanishCvrService + // .GetCompanyAsync(CVR_NUMMER); + + //await this.SaveJsonOrDefault(response.Result); + + //Assert.IsNotNull(response); + //Assert.IsNotNull(response.Result); + + //Assert.IsTrue(response.Result.Company.Auditing.IsOvertakenByFinancialStabilityAuthority); + } + + [TestMethod] + public async Task GetCompanyWhenSignatoryRuleTest() + { + const string CVR_NUMMER = "30276582"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Selskabet tegnes af tre bestyrelsesmedlemmer i forening eller af selskabets administrerende direktør i forening med én direktør eller ét bestyrelsesmedlem", response.Result.Company.Authority.SignatoryRule); + } + + [TestMethod] + public async Task GetCompanyWhenSignatoryRuleAndInactiveTest() + { + const string CVR_NUMMER = "38696769"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.AreEqual("Selskabet tegnes af direktionen alene.", response.Result.Company.Authority.SignatoryRule); + } + + [TestMethod] + public async Task GetCompanyWhenExecutivesTest() + { + const string CVR_NUMMER = "30276582"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(1, response.Result.Company.Authority.Executives.Current.Count()); + Assert.AreEqual(4, response.Result.Company.Authority.Executives.HistoricExecutives.Count()); + + var executive = response.Result.Company.Authority.Executives.HistoricExecutives.FirstOrDefault(x => x.Title != null); + Assert.IsNotNull(executive); + Assert.AreEqual("Direktør", executive.Title); + } + + [TestMethod] + public async Task GetCompanyWhenAuthorizedSignatoriesTest() + { + const string CVR_NUMMER = "42583065"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.AuthorizedSignatories.Current); + Assert.AreEqual(1, response.Result.Company.Authority.AuthorizedSignatories.Current.Count()); + Assert.AreEqual(0, response.Result.Company.Authority.AuthorizedSignatories.HistoricAuthorizedSignatories.Count()); + + var authorizedSignatory = response.Result.Company.Authority.AuthorizedSignatories.Current.FirstOrDefault(); + Assert.IsNotNull(authorizedSignatory); + Assert.AreEqual("VIA EQUITY A/S", authorizedSignatory.Name); + } + + [TestMethod] + public async Task GetCompanyWhenAuthorizedSignatoriesAndNoCurrentTest() + { + const string CVR_NUMMER = "62447559"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.AuthorizedSignatories.Current); + Assert.AreEqual(0, response.Result.Company.Authority.AuthorizedSignatories.Current.Count()); + Assert.AreEqual(4, response.Result.Company.Authority.AuthorizedSignatories.HistoricAuthorizedSignatories.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenSpecialFinancialParticipantsTest() + { + const string CVR_NUMMER = "14211349"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.SpecialFinancialParticipants.Current); + Assert.AreEqual(2, response.Result.Company.Authority.SpecialFinancialParticipants.Current.Count()); + Assert.AreEqual(5, response.Result.Company.Authority.SpecialFinancialParticipants.HistoricSpecialFinancialParticipants.Count()); + + var financialParticipant = response.Result.Company.Authority.SpecialFinancialParticipants.Current.FirstOrDefault(); + Assert.IsNotNull(financialParticipant); + Assert.AreEqual("C WorldWide Fund Management, filial af C WorldWide Fund Management S.A., Luxembourg", financialParticipant.Name); + Assert.AreEqual("Administrationsselskab", financialParticipant.Type); + } + + [TestMethod] + public async Task GetCompanyWhenSpecialFinancialParticipantsAndNoCurrentTest() + { + const string CVR_NUMMER = "14090746"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.SpecialFinancialParticipants.Current); + Assert.AreEqual(0, response.Result.Company.Authority.SpecialFinancialParticipants.Current.Count()); + Assert.AreEqual(3, response.Result.Company.Authority.SpecialFinancialParticipants.HistoricSpecialFinancialParticipants.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenOtherLiableParticipantsTest() + { + const string CVR_NUMMER = "14068341"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.OtherLiableParticipants.Current); + Assert.AreEqual(1, response.Result.Company.Authority.OtherLiableParticipants.Current.Count()); + Assert.AreEqual(0, response.Result.Company.Authority.OtherLiableParticipants.HistoricLiableParticipants.Count()); + + var liableParticipant = response.Result.Company.Authority.OtherLiableParticipants.Current.FirstOrDefault(); + Assert.IsNotNull(liableParticipant); + Assert.AreEqual("Michael Jensen", liableParticipant.Name); + Assert.AreEqual("Interessenter", liableParticipant.Role); + Assert.IsNull(liableParticipant.RegisteredCapital); + } + + [TestMethod] + public async Task GetCompanyWhenOtherLiableParticipantsAndRegisteredCapitalTest() + { + const string CVR_NUMMER = "32079873"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var liableParticipant = response.Result.Company.Authority.OtherLiableParticipants.Current.FirstOrDefault(); + Assert.IsNotNull(liableParticipant); + Assert.IsNotNull(liableParticipant.RegisteredCapital); + Assert.AreEqual(0.00D, liableParticipant.RegisteredCapital.Value); + Assert.AreEqual("DKK", liableParticipant.RegisteredCapital.Currency); + } + + [TestMethod] + public async Task GetCompanyWhenOtherLiableParticipantsAndNoCurrentTest() + { + const string CVR_NUMMER = "14026045"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.OtherLiableParticipants.Current); + Assert.AreEqual(0, response.Result.Company.Authority.OtherLiableParticipants.Current.Count()); + Assert.AreEqual(1, response.Result.Company.Authority.OtherLiableParticipants.HistoricLiableParticipants.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenLiquidatorTest() + { + const string CVR_NUMMER = "10190045"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.Liquidators); + Assert.AreEqual(1, response.Result.Company.Authority.Liquidators.Count()); + + var liquidator = response.Result.Company.Authority.Liquidators.FirstOrDefault(); + Assert.IsNotNull(liquidator); + Assert.AreEqual("Hans Lindstrøm Svendsen", liquidator.Name); + Assert.AreEqual("Skifteretten", liquidator.AppointedBy); + } + + [TestMethod] + public async Task GetCompanyWhenLiquidatorAndMultipleTest() + { + const string CVR_NUMMER = "10195004"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Authority.Liquidators); + Assert.AreEqual(3, response.Result.Company.Authority.Liquidators.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenOversightAuthorityTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //const string CVR_NUMMER = "69486312"; + + //var response = await this.DanishCvrService + // .GetCompanyAsync(CVR_NUMMER); + + //await this.SaveJsonOrDefault(response.Result); + + //Assert.IsNotNull(response); + //Assert.IsNotNull(response.Result); + + //Assert.AreEqual("Erhvervsstyrelse, Civilstyrelsen", response.Result.Company.Governance.Oversight.Authority); + } + + [TestMethod] + public async Task GetCompanyWhenOversightAuthorityWhenDefaultTest() + { + const string CVR_NUMMER = "27157351"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Erhvervsstyrelsen", response.Result.Company.Governance.Oversight.Authority); + } + + [TestMethod] + public async Task GetCompanyWhenHasSocialEconomicOversightTest() + { + const string CVR_NUMMER = "25940539"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Governance.Oversight.HasSocialEconomicOversight); + } + + [TestMethod] + public async Task GetCompanyWhenHasSocialEconomicOversightAndInactiveTest() + { + const string CVR_NUMMER = "25853709"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.Company.Status.IsActive); + Assert.IsFalse(response.Result.Company.Governance.Oversight.HasSocialEconomicOversight); + } + + [TestMethod] + public async Task GetCompanyWhenHasSpecialLicensesOrConcessionsTest() + { + const string CVR_NUMMER = "10496837"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Governance.Oversight.HasSpecialLicensesOrConcessions); + } + + [TestMethod] + public async Task GetCompanyWhenHasSpecialLicensesOrConcessionsAndExpiredTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenNotesTest() + { + const string CVR_NUMMER = "27157351"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("4 - erst rykker for årsrapport", response.Result.Company.Governance.Oversight.Notes); + } + + [TestMethod] + public async Task GetCompanyWhenNotesSocialEconomicTest() + { + const string CVR_NUMMER = "55280312"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.AreEqual("Socialtilsyn Hovedstaden", response.Result.Company.Governance.Oversight.Notes); + } + + [TestMethod] + public async Task GetCompanyWhenNotesAndNotesSocialEconomicTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenBoardMembersTest() + { + const string CVR_NUMMER = "10192676"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Governance.BoardMembers.Current); + Assert.AreEqual(9, response.Result.Company.Governance.BoardMembers.Current.Count()); + Assert.AreEqual(1, response.Result.Company.Governance.BoardMembers.HistoricBoardMembers.Count()); + + var boardMember = response.Result.Company.Governance.BoardMembers.Current.FirstOrDefault(); + Assert.IsNotNull(boardMember); + Assert.AreEqual("Erik Gregers Hansen", boardMember.Name); + Assert.AreEqual("Bestyrelsesmedlem", boardMember.Title); + Assert.IsNull(boardMember.AlternateFor); + Assert.IsNull(boardMember.ElectionMethod); + } + + [TestMethod] + public async Task GetCompanyWhenBoardMembersAndDirective8ApprovedTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenAssociationRepresentativesTest() + { + const string CVR_NUMMER = "10194105"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Governance.AssociationRepresentatives.Current); + Assert.AreEqual(1, response.Result.Company.Governance.AssociationRepresentatives.Current.Count()); + Assert.AreEqual(0, response.Result.Company.Governance.AssociationRepresentatives.HistoricAssociationRepresentatives.Count()); + + var associationRepresentative = response.Result.Company.Governance.AssociationRepresentatives.Current.FirstOrDefault(); + Assert.IsNotNull(associationRepresentative); + Assert.AreEqual("Judith Søndergaard", associationRepresentative.Name); + Assert.AreEqual("Foreningsrepræsentant", associationRepresentative.Title); + } + + [TestMethod] + public async Task GetCompanyWhenFoundersTest() + { + const string CVR_NUMMER = "43804146"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Governance.Founders); + Assert.AreEqual(6, response.Result.Company.Governance.Founders.Count()); + + var founder = response.Result.Company.Governance.Founders.FirstOrDefault(); + Assert.IsNotNull(founder); + Assert.AreEqual("ROCKET ApS", founder.Name); + Assert.IsNotNull(founder.RegistrationNumber); + } + + [TestMethod] + public async Task GetCompanyWhenHasShareClassesTest() + { + const string CVR_NUMMER = "12932502"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Ownership.HasShareClasses); + } + + [TestMethod] + public async Task GetCompanyWhenHasOnlyUnder5PercentOwnershipsTest() + { + const string CVR_NUMMER = "42914126"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Ownership.HasOnlyUnder5PercentOwnerships); + } + + [TestMethod] + public async Task GetCompanyWhenHasPublicShareholderRegistryTest() + { + const string CVR_NUMMER = "22166514"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Ownership.HasPublicShareholderRegistry); + } + + [TestMethod] + public async Task GetCompanyWhenLegalOwnersTest() + { + const string CVR_NUMMER = "43804146"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Ownership.LegalOwners); + Assert.AreEqual(8, response.Result.Company.Ownership.LegalOwners.Count()); + + var legalOwner = response.Result.Company.Ownership.LegalOwners.FirstOrDefault(); + Assert.IsNotNull(legalOwner); + Assert.AreEqual("ROCKET ApS", legalOwner.Name); + Assert.IsNotNull(legalOwner.RegistrationNumber); + Assert.IsNotNull(legalOwner.Equity.Current); + Assert.IsNull(legalOwner.Equity.Current.ShareClass); + Assert.AreEqual(0.3333, legalOwner.Equity.Current.SharePercentage); + Assert.IsNotNull(legalOwner.VotingRights.Current); + Assert.AreEqual(0.3333, legalOwner.VotingRights.Current.Value); + + Assert.AreEqual(2, legalOwner.Equity.HistoricValues.Count()); + Assert.AreEqual(2, legalOwner.VotingRights.HistoricValues.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBeneficialOwnersTest() + { + const string CVR_NUMMER = "43804146"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Ownership.BeneficialOwners); + Assert.AreEqual(4, response.Result.Company.Ownership.BeneficialOwners.Count()); + + var beneficialOwner = response.Result.Company.Ownership.BeneficialOwners.FirstOrDefault(); + Assert.IsNotNull(beneficialOwner); + Assert.AreEqual("Simon Bækgaard Kristoffersen", beneficialOwner.Name); + Assert.IsNotNull(beneficialOwner.Equity.Current); + Assert.IsNull(beneficialOwner.Equity.Current.ShareClass); + Assert.AreEqual(0.45, beneficialOwner.Equity.Current.SharePercentage); + Assert.IsNotNull(beneficialOwner.VotingRights.Current); + Assert.AreEqual(0.45, beneficialOwner.VotingRights.Current.Value); + + Assert.AreEqual(4, beneficialOwner.Equity.HistoricValues.Count()); + Assert.AreEqual(4, beneficialOwner.VotingRights.HistoricValues.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBeneficiaryTest() + { + const string CVR_NUMMER = "71981312"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Ownership.Beneficiary); + Assert.AreEqual("Tidligere koncerndirektører i jyske bank a/s samt disses efterladte ægtefæller og børn.", response.Result.Company.Ownership.Beneficiary.Text); + Assert.AreEqual("Fonden har til formål at yde pensionstilskud til medlemmer af koncerndirektionen i jyske bank a/s samt disses eventuelle enker eller enkemænd og mindreårige børn samt børn under 24 år under uddannelse, i det omfang fondens midler tillader dette.", response.Result.Company.Ownership.Beneficiary.LegalEntitlement); + } + + [TestMethod] + public async Task GetCompanyWhenBeneficiaryAndInactiveTest() + { + const string CVR_NUMMER = "12418434"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNull(response.Result.Company.Ownership.Beneficiary); + } + + [TestMethod] + public async Task GetCompanyWhenParentCompanyTest() + { + const string CVR_NUMMER = "12031041"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Ownership.ParentCompany.Current); + Assert.AreEqual("4005870900", response.Result.Company.Ownership.ParentCompany.Current.ExternalId); + Assert.AreEqual(1, response.Result.Company.Ownership.ParentCompany.HistoricParentCompanies.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenMergerTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenDemergerTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetCompanyWhenBilawsTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Bilaws.Current); + Assert.IsNull(response.Result.Company.Bilaws.Current.Notes); + Assert.IsNull(response.Result.Company.Bilaws.Approval); + Assert.AreEqual(1, response.Result.Company.Bilaws.HistoricBilaws.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenBilawsAndApprovalTest() + { + const string CVR_NUMMER = "32290442"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.Bilaws.Current); + Assert.IsNotNull(response.Result.Company.Bilaws.Approval); + Assert.AreEqual("Finanstilsynet", response.Result.Company.Bilaws.Approval.Authority); + Assert.IsNotNull(response.Result.Company.Bilaws.Approval.ApprovedAt); + } + + [TestMethod] + public async Task GetCompanyWhenAuditorRegistrationTest() + { + const string CVR_NUMMER = "31882354"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.AuditorRegistration); + Assert.IsTrue(response.Result.Company.AuditorRegistration.IsHoldingCompany); + Assert.AreEqual("Boersnoteret eu", response.Result.Company.AuditorRegistration.PublicInterest); + Assert.AreEqual("Anders Dons", response.Result.Company.AuditorRegistration.ContactPerson); + Assert.AreEqual("Deloitte touche tohmatsu limited\r\nhjemmeside: http://deloitte.com", response.Result.Company.AuditorRegistration.ProfessionalNetwork); + Assert.IsNotNull(response.Result.Company.AuditorRegistration.CertifiedAuditors.Current); + Assert.IsTrue(response.Result.Company.AuditorRegistration.CertifiedAuditors.Current.Count() > 100); + Assert.AreEqual(0, response.Result.Company.AuditorRegistration.CertifiedAuditors.HistoricCertifiedAuditors.Count()); + + var certifiedAuditor = response.Result.Company.AuditorRegistration.CertifiedAuditors.Current.FirstOrDefault(); + Assert.IsNotNull(certifiedAuditor); + Assert.AreEqual("Lars Berg-Nielsen", certifiedAuditor.Name); + Assert.AreEqual("Revisionsvirksomhed Stemmeberettiget", certifiedAuditor.Role); + Assert.AreEqual("Weidekampsgade 6, 2300 københavn s", certifiedAuditor.BusinessAddress); + Assert.AreEqual(0.00, certifiedAuditor.VotingRights.Current.Value); + Assert.AreEqual("Anden", certifiedAuditor.VotingRights.Type); + Assert.IsNull(certifiedAuditor.VotingRights.Exception); + } + + [TestMethod] + public async Task GetCompanyWhenAuditorRegistrationAndVotingRightsTest() + { + const string CVR_NUMMER = "33864043"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.AuditorRegistration); + + var certifiedAuditor = response.Result.Company.AuditorRegistration.CertifiedAuditors.Current.FirstOrDefault(); + Assert.IsNotNull(certifiedAuditor); + Assert.AreEqual(0.00, certifiedAuditor.VotingRights.Current.Value); + Assert.IsNull(certifiedAuditor.VotingRights.Type); + Assert.AreEqual("Hovedbeskaeftigelse", certifiedAuditor.VotingRights.Exception); + } + + [TestMethod] + public async Task GetCompanyWhenAuditorRegistrationAndInActiveTest() + { + const string CVR_NUMMER = "21158178"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNull(response.Result.Company.AuditorRegistration); + } + + [TestMethod] + public async Task GetCompanyWhenProductionUnitsTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(1, response.Result.Company.ProductionUnits.Current.Count()); + Assert.AreEqual(1, response.Result.Company.ProductionUnits.HistoricProductionUnits.Count()); + + var productionUnitId = response.Result.Company.ProductionUnits.Current.FirstOrDefault(); + Assert.IsNotNull(productionUnitId); + Assert.AreEqual("1000594476", productionUnitId.ProductionUnitNumber); + } + + [TestMethod] + public async Task GetCompanyWhenProductionUnitsAndInactiveTest() + { + const string CVR_NUMMER = "10033780"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(0, response.Result.Company.ProductionUnits.Current.Count()); + Assert.AreEqual(1, response.Result.Company.ProductionUnits.HistoricProductionUnits.Count()); + } + + [TestMethod] + public async Task GetCompanyWhenFoundedAtTest() + { + const string CVR_NUMMER = "10190029"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.FoundedAt); + } + + [TestMethod] + public async Task GetCompanyWhenEffectiveStartedAtTest() + { + const string CVR_NUMMER = "10190029"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.EffectiveStartedAt); + } + + [TestMethod] + public async Task GetCompanyWhenDissolvedAtTest() + { + const string CVR_NUMMER = "10190029"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.DissolvedAt); + } + + [TestMethod] + public async Task GetCompanyWhenCommercialFundApprovedAtTest() + { + const string CVR_NUMMER = "10192676"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Company.CommercialFundApprovedAt); + } + + [TestMethod] + public async Task GetCompanyWhenIsProtectedFromAdvertisementTest() + { + const string CVR_NUMMER = "10192676"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.IsProtectedFromAdvertisement); + } + + [TestMethod] + public async Task GetCompanyWhenEntityTypeTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(EntityType.Company, response.Result.Company.EntityType); + } + + [TestMethod] + public async Task GetCompanyWhenImportErrorsTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.Company.Errors.HasImportErrors); + Assert.AreEqual("Medlem: Ukendt deltager enhedsnummer for cvr: 13612870 4004428861", response.Result.Company.Errors.Description); + } + + [TestMethod] + public async Task GetCompanyWhenRegistrationErrorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //const string CVR_NUMMER = ""; + + //var response = await this.DanishCvrService + // .GetCompanyAsync(CVR_NUMMER); + + //await this.SaveJsonOrDefault(response.Result); + + //Assert.IsNotNull(response); + //Assert.IsNotNull(response.Result); + + //Assert.IsTrue(response.Result.Company.Errors.HasRegistrationErrors); + } + + [TestMethod] + public async Task GetCompanyWhenExternalIdTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.IsNotNull(response.Result.Company.ExternalId); + } + + [TestMethod] + public async Task GetCompanyWhenUpdatedAtTest() + { + const string CVR_NUMMER = "13612870"; + + var response = await this.DanishCvrService + .GetCompanyAsync(CVR_NUMMER); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.IsNotNull(response.Result.Company.UpdatedAt); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyBusinessTypes.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyBusinessTypes.cs new file mode 100644 index 0000000..468c2b2 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyBusinessTypes.cs @@ -0,0 +1,44 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyBusinessTypesTest() + { + var response = await this.DanishCvrService + .GetCompanyBusinessTypesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(41, results.Length); + } + + [TestMethod] + public async Task GetCompanyBusinessTypesHasCorrectOrderingTest() + { + var response = await this.DanishCvrService + .GetCompanyBusinessTypesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(41, results.Length); + + var result = results + .Select(x => x.Code) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = int.Parse(result[i - 1]); + var current = int.Parse(result[i]); + + Assert.IsTrue(current > previous); + } + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyByExternalId.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyByExternalId.cs new file mode 100644 index 0000000..b905e85 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyByExternalId.cs @@ -0,0 +1,21 @@ +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyWithExternalIdTest() + { + const string EXTERNAL_ID = "4004308865"; + + var response = await this.DanishCvrService + .GetCompanyByExternalIdAsync(EXTERNAL_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.AreEqual(EXTERNAL_ID, response.Result.Company.ExternalId); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyIndustries.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyIndustries.cs new file mode 100644 index 0000000..c66f1c0 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyIndustries.cs @@ -0,0 +1,43 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyIndustriesTest() + { + var response = await this.DanishCvrService + .GetCompanyIndustriesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(738, results.Length); + } + + [TestMethod] + public async Task GetCompanyIndustriesHasCorrectOrderingTest() + { + var response = await this.DanishCvrService + .GetCompanyIndustriesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var result = results + .Select(x => x.Code) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = int.Parse(result[i - 1]); + var current = int.Parse(result[i]); + + Assert.IsTrue(current > previous); + } + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyRegistrationTexts.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyRegistrationTexts.cs new file mode 100644 index 0000000..c073445 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyRegistrationTexts.cs @@ -0,0 +1,60 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetRegistrationTextsTest() + { + const string CVR_NUMMER = "43804146"; + + var response = await this.DanishCvrService + .GetCompanyRegistrationTextsAsync(CVR_NUMMER); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(4, results.Length); + + var result = results.FirstOrDefault(); + Assert.IsNotNull(result); + Assert.AreEqual("36998871", result.RegistrationText.ExternalId); + Assert.IsNotNull(result.RegistrationText.RegisteredAt); + Assert.IsNotNull(result.RegistrationText.PublishedAt); + Assert.AreEqual("43804146", result.RegistrationText.RegistrationNumber); + Assert.AreEqual("Vutal ApS", result.RegistrationText.Name); + Assert.AreEqual("1200", result.RegistrationText.PostalCode); + Assert.IsNotNull(result.RegistrationText.Text); + Assert.IsNotNull(result.RegistrationText.UpdatedAt); + Assert.AreEqual(1, result.RegistrationText.Statuses.Count()); + } + + [TestMethod] + public async Task GetRegistrationTextsHasCorrectOrderingTest() + { + const string CVR_NUMMER = "43804146"; + + var response = await this.DanishCvrService + .GetCompanyRegistrationTextsAsync(CVR_NUMMER); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(4, results.Length); + + var result = results + .Select(x => x.RegistrationText.RegisteredAt) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1]; + var current = result[i]; + + Assert.IsTrue(current <= previous); + } + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyStatuses.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyStatuses.cs new file mode 100644 index 0000000..49bcfcb --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetCompanyStatuses.cs @@ -0,0 +1,44 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetCompanyStatusesTest() + { + var response = await this.DanishCvrService + .GetCompanyStatusesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(18, results.Length); + } + + [TestMethod] + public async Task GetCompanyStatusesHasCorrectOrderingTest() + { + var response = await this.DanishCvrService + .GetCompanyStatusesAsync(); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var result = results + .Select(x => x.Text) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetPerson.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetPerson.cs new file mode 100644 index 0000000..74e03b0 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetPerson.cs @@ -0,0 +1,194 @@ +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Responses.Models.Enums; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetPersonTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + } + + [TestMethod] + public async Task GetPersonWhenNameTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Person.Name); + Assert.AreEqual("Simon Bækgaard Kristoffersen", response.Result.Person.Name.Value); + } + + [TestMethod] + public async Task GetPersonWhenAddressesTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Person.Addresses.Current); + + Assert.AreEqual("DK", response.Result.Person.Addresses.Current.Country); + Assert.AreEqual("København S", response.Result.Person.Addresses.Current.City.Name); + Assert.AreEqual("2300", response.Result.Person.Addresses.Current.City.PostalCode); + Assert.AreEqual("J.H. Deuntzers Gade", response.Result.Person.Addresses.Current.StreetName); + Assert.AreEqual("4", response.Result.Person.Addresses.Current.HouseNumberFrom); + + Assert.AreEqual("DK", response.Result.Person.Addresses.Latest.Country); + Assert.AreEqual("København S", response.Result.Person.Addresses.Latest.City.Name); + Assert.AreEqual("2300", response.Result.Person.Addresses.Latest.City.PostalCode); + Assert.AreEqual("J.H. Deuntzers Gade", response.Result.Person.Addresses.Latest.StreetName); + Assert.AreEqual("4", response.Result.Person.Addresses.Latest.HouseNumberFrom); + + Assert.AreEqual(1, response.Result.Person.Addresses.HistoricAddresses.Count()); + } + + [TestMethod] + public async Task GetPersonWhenPhoneNumbersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetPersonWhenFaxNumbersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetPersonWhenEmailAddressesTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetPersonyWhenTitleTest() + { + const string PERSON_ID = "4003887725"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Bestyrelsesmedlem", response.Result.Person.Title); + } + + [TestMethod] + public async Task GetPersonWhenEntityTypeTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(EntityType.Person, response.Result.Person.EntityType); + } + + [TestMethod] + public async Task GetPersonWhenImportErrorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetPersonWhenRegistrationErrorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetPersonWhenExternalIdTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Person.ExternalId); + } + + [TestMethod] + public async Task GetPersonWhenUpdatedAtTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.Person.UpdatedAt); + } + + [TestMethod] + public async Task GetPersonWhenCompaniesTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetPersonAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(4, response.Result.Person.Companies.Count()); + + var company = response.Result.Person.Companies.FirstOrDefault(); + Assert.IsNotNull(company); + Assert.AreEqual(5, company.ActiveRoles.Count()); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnit.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnit.cs new file mode 100644 index 0000000..15c77a7 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnit.cs @@ -0,0 +1,539 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Responses.Models.Enums; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetProductionUnitTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + } + + [TestMethod] + public async Task GetProductionUnitWhenNamesTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.Names.Current); + Assert.AreEqual("MICROSOFT DANMARK APS", response.Result.ProductionUnit.Names.Current.Value); + Assert.AreEqual(new DateOnly(1989, 11, 1), response.Result.ProductionUnit.Names.Current.Period.From); + Assert.IsNull(response.Result.ProductionUnit.Names.Current.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Names.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.ProductionUnit.Names.Latest); + Assert.AreEqual("MICROSOFT DANMARK APS", response.Result.ProductionUnit.Names.Latest.Value); + Assert.AreEqual(new DateOnly(1989, 11, 1), response.Result.ProductionUnit.Names.Latest.Period.From); + Assert.IsNull(response.Result.ProductionUnit.Names.Latest.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Names.Latest.UpdatedAt); + + Assert.AreEqual(0, response.Result.ProductionUnit.Names.HistoricNames.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenNamesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1021080361"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.Names.Current); + + Assert.IsNotNull(response.Result.ProductionUnit.Names.Latest); + Assert.AreEqual(".dk Invest Holding ivs", response.Result.ProductionUnit.Names.Latest.Value); + Assert.AreEqual(new DateOnly(2016, 01, 22), response.Result.ProductionUnit.Names.Latest.Period.From); + Assert.AreEqual(new DateOnly(2017, 11, 17), response.Result.ProductionUnit.Names.Latest.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Names.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.ProductionUnit.Names.HistoricNames.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenAddressesTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.Addresses.Current); + + Assert.AreEqual("DK", response.Result.ProductionUnit.Addresses.Current.Country); + Assert.AreEqual("Kgs. Lyngby", response.Result.ProductionUnit.Addresses.Current.City.Name); + Assert.AreEqual("2800", response.Result.ProductionUnit.Addresses.Current.City.PostalCode); + Assert.AreEqual("Kanalvej", response.Result.ProductionUnit.Addresses.Current.StreetName); + Assert.AreEqual("7", response.Result.ProductionUnit.Addresses.Current.HouseNumberFrom); + + Assert.AreEqual("DK", response.Result.ProductionUnit.Addresses.Latest.Country); + Assert.AreEqual("Kgs. Lyngby", response.Result.ProductionUnit.Addresses.Latest.City.Name); + Assert.AreEqual("2800", response.Result.ProductionUnit.Addresses.Latest.City.PostalCode); + Assert.AreEqual("Kanalvej", response.Result.ProductionUnit.Addresses.Latest.StreetName); + Assert.AreEqual("7", response.Result.ProductionUnit.Addresses.Latest.HouseNumberFrom); + + Assert.AreEqual(2, response.Result.ProductionUnit.Addresses.HistoricAddresses.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenAddressesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1021080361"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.Addresses.Current); + + Assert.IsNotNull(response.Result.ProductionUnit.Addresses.Latest); + Assert.AreEqual("DK", response.Result.ProductionUnit.Addresses.Latest.Country); + Assert.AreEqual("Greve", response.Result.ProductionUnit.Addresses.Latest.City.Name); + Assert.AreEqual("2670", response.Result.ProductionUnit.Addresses.Latest.City.PostalCode); + Assert.AreEqual("Korskildelund", response.Result.ProductionUnit.Addresses.Latest.StreetName); + Assert.AreEqual("6", response.Result.ProductionUnit.Addresses.Latest.HouseNumberFrom); + + Assert.AreEqual(2, response.Result.ProductionUnit.Addresses.HistoricAddresses.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenPhoneNumbersTest() + { + const string PRODUCTION_UNIT_ID = "1011684358"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.PhoneNumbers.Current); + Assert.AreEqual("45129184", response.Result.ProductionUnit.PhoneNumbers.Current.Value); + Assert.IsFalse(response.Result.ProductionUnit.PhoneNumbers.Current.IsUnlisted); + Assert.AreEqual(new DateOnly(2022, 7, 27), response.Result.ProductionUnit.PhoneNumbers.Current.Period.From); + Assert.IsNull(response.Result.ProductionUnit.PhoneNumbers.Current.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.PhoneNumbers.Current.UpdatedAt); + Assert.AreEqual(0, response.Result.ProductionUnit.PhoneNumbers.HistoricPhoneNumbers.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenPhoneNumbersAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1021080361"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.PhoneNumbers); + } + + [TestMethod] + public async Task GetProductionUnitWhenFaxNumbersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenFaxNumbersAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1021080361"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.FaxNumbers); + } + + [TestMethod] + public async Task GetProductionUnitWhenEmailAddressesTest() + { + const string PRODUCTION_UNIT_ID = "1011684358"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.EmailAddresses.Current); + Assert.AreEqual("jobau@danskebank.dk", response.Result.ProductionUnit.EmailAddresses.Current.Value); + Assert.IsFalse(response.Result.ProductionUnit.EmailAddresses.Current.IsUnlisted); + Assert.AreEqual(new DateOnly(2022, 7, 27), response.Result.ProductionUnit.EmailAddresses.Current.Period.From); + Assert.IsNull(response.Result.ProductionUnit.EmailAddresses.Current.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.EmailAddresses.Current.UpdatedAt); + Assert.AreEqual(0, response.Result.ProductionUnit.EmailAddresses.HistoricEmailAddresses.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenEmailAddressesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1021080361"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.EmailAddresses.Current); + Assert.AreEqual(1, response.Result.ProductionUnit.EmailAddresses.HistoricEmailAddresses.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenIndustriesTest() + { + const string PRODUCTION_UNIT_ID = "1002927924"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Kreditmarked og forsikring (65)", response.Result.ProductionUnit.Industry.Notes); + + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Current); + Assert.AreEqual("641900", response.Result.ProductionUnit.Industry.Current.Code); + Assert.AreEqual("Andre pengeinstitutters aktiviteter", response.Result.ProductionUnit.Industry.Current.Description); + Assert.AreEqual(new DateOnly(2025, 1, 1), response.Result.ProductionUnit.Industry.Current.Period.From); + Assert.IsNull(response.Result.ProductionUnit.Industry.Current.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Current.UpdatedAt); + + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest); + Assert.AreEqual("641900", response.Result.ProductionUnit.Industry.Latest.Code); + Assert.AreEqual("Andre pengeinstitutters aktiviteter", response.Result.ProductionUnit.Industry.Latest.Description); + Assert.AreEqual(new DateOnly(2025, 1, 1), response.Result.ProductionUnit.Industry.Latest.Period.From); + Assert.IsNull(response.Result.ProductionUnit.Industry.Latest.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest.UpdatedAt); + + Assert.AreEqual(2, response.Result.ProductionUnit.Industry.HistoricIndustries.Count()); + Assert.AreEqual(0, response.Result.ProductionUnit.Industry.SecondaryIndustries.Count()); + Assert.AreEqual(0, response.Result.ProductionUnit.Industry.HistoricSecondaryIndustries.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenIndustriesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1007636896"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.Industry.Notes); + Assert.IsNull(response.Result.ProductionUnit.Industry.Current); + + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest); + Assert.AreEqual("980000", response.Result.ProductionUnit.Industry.Latest.Code); + Assert.AreEqual("Uoplyst", response.Result.ProductionUnit.Industry.Latest.Description); + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest.Period.From); + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest.Period.To); + Assert.IsNotNull(response.Result.ProductionUnit.Industry.Latest.UpdatedAt); + + Assert.AreEqual(1, response.Result.ProductionUnit.Industry.HistoricIndustries.Count()); + Assert.AreEqual(0, response.Result.ProductionUnit.Industry.SecondaryIndustries.Count()); + Assert.AreEqual(0, response.Result.ProductionUnit.Industry.HistoricSecondaryIndustries.Count()); + } + + [TestMethod] + public async Task GetProductionUnitWhenStatusesTest() + { + const string PRODUCTION_UNIT_ID = "1002927924"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.Status); + Assert.AreEqual("Normal", response.Result.ProductionUnit.Status.Current.Value); + } + + [TestMethod] + public async Task GetProductionUnitWhenStatusesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1007636896"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual("Ophørt", response.Result.ProductionUnit.Status.Current.Value); + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + } + + [TestMethod] + public async Task GetProductionUnitWhenEmployeesTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsTrue(response.Result.ProductionUnit.Employees.Current.NumberOfEmployees > 400); + Assert.IsTrue(response.Result.ProductionUnit.Employees.Current.NumberOfEmployees < 600); + Assert.IsTrue(response.Result.ProductionUnit.Employees.Current.NumberOfFulltimePositions > 400); + Assert.IsTrue(response.Result.ProductionUnit.Employees.Current.NumberOfFulltimePositions < 600); + Assert.IsNotNull(response.Result.ProductionUnit.Employees.Current.UpdatedAt); + Assert.IsTrue(response.Result.ProductionUnit.Employees.HistoricEmployees.Count() > 90); + } + + [TestMethod] + public async Task GetProductionUnitWhenEmployeesAndInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1022444316"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsFalse(response.Result.ProductionUnit.Status.IsActive); + Assert.IsNull(response.Result.ProductionUnit.Employees); + } + + [TestMethod] + public async Task GetProductionUnitWhenCompaniesTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(1, response.Result.ProductionUnit.Companies.Current.Count()); + + var company = response.Result.ProductionUnit.Companies.Current.FirstOrDefault(); + Assert.IsNotNull(company); + Assert.AreEqual("13612870", company.RegistrationNumber); + Assert.IsNotNull(company.Period.From); + Assert.IsNull(company.Period.To); + Assert.IsNotNull(company.UpdatedAt); + } + + [TestMethod] + public async Task GetProductionUnitWhenCompaniesWhenInactiveTest() + { + const string PRODUCTION_UNIT_ID = "1022444316"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(0, response.Result.ProductionUnit.Companies.Current.Count()); + Assert.AreEqual(1, response.Result.ProductionUnit.Companies.HistoricCompanies.Count()); + + var company = response.Result.ProductionUnit.Companies.HistoricCompanies.FirstOrDefault(); + Assert.IsNotNull(company); + Assert.AreEqual("38641875", company.RegistrationNumber); + Assert.IsNotNull(company.Period.From); + Assert.IsNotNull(company.Period.To); + Assert.IsNotNull(company.UpdatedAt); + } + + [TestMethod] + public async Task GetProductionUnitWhenFoundedAtTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.FoundedAt); + } + + [TestMethod] + public async Task GetProductionUnitWhenDissolvedAtTest() + { + const string PRODUCTION_UNIT_ID = "1022444316"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.DissolvedAt); + } + + [TestMethod] + public async Task GetProductionUnitWhenIsHeaduartersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenIsSupportingUnitTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenIsTemporaryTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenHasConfidentialityTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenIsProtectedFromAdvertisementTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenEntityTypeTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(EntityType.ProductionUnit, response.Result.ProductionUnit.EntityType); + } + + [TestMethod] + public async Task GetProductionUnitWhenImportErrorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenRegistrationErrorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetProductionUnitWhenUpdatedAtTest() + { + const string PRODUCTION_UNIT_ID = "1000594476"; + + var response = await this.DanishCvrService + .GetProductionUnitAsync(PRODUCTION_UNIT_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.IsNotNull(response.Result.ProductionUnit.UpdatedAt); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnits.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnits.cs new file mode 100644 index 0000000..fa362ff --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetProductionUnits.cs @@ -0,0 +1,37 @@ +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Requests.Models; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetProductionUnitsTest() + { + const string REGISTRATION_NUMBER = "13612870"; + + var response = await this.DanishCvrService + .GetProductionUnitsAsync(REGISTRATION_NUMBER); + + Assert.IsNotNull(response); + Assert.AreEqual(2, response.Results.Count()); + } + + [TestMethod] + public async Task GetProductionUnitsWhenPagingTest() + { + const string REGISTRATION_NUMBER = "13612870"; + + var response = await this.DanishCvrService + .GetProductionUnitsAsync(REGISTRATION_NUMBER, true, new Paging { Count = 1, Skip = 1 }); + + Assert.IsNotNull(response); + Assert.AreEqual(1, response.Results.Count()); + + var result = response.Results.FirstOrDefault(); + Assert.IsNotNull(result); + Assert.AreEqual("1010866444", result.ProductionUnit.ProductionUnitNumber); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetRelations.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetRelations.cs new file mode 100644 index 0000000..2d1b5d1 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.GetRelations.cs @@ -0,0 +1,617 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Requests.Models; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task GetRelationsWhenPersonTest() + { + const string PERSON_EXTERNAL_ID = "4005942274"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_EXTERNAL_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.AreEqual(1, response.TotalResults); + + Assert.AreEqual(1, response.Result.Companies.Count()); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndHistoricTest() + { + const string PERSON_EXTERNAL_ID = "4005942274"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_EXTERNAL_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.AreEqual(5, response.TotalResults); + + Assert.AreEqual(5, response.Result.Companies.Count()); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndPagingTest() + { + const string PERSON_EXTERNAL_ID = "4005942274"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_EXTERNAL_ID, true, new Paging { Count = 2, Skip = 2 }); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.AreEqual(5, response.TotalResults); + + Assert.AreEqual(2, response.Result.Companies.Count()); + + var company = response.Result.Companies.FirstOrDefault(); + Assert.IsNotNull(company); + Assert.AreEqual("38696769", company.RegistrationNumber); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndOrderedCorrectlyTest() + { + const string PERSON_EXTERNAL_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_EXTERNAL_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var result = response.Result.Companies + .Select(x => x.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleFoundersTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var founders = response.Result.Companies + .Select(x => x.Roles.Founder) + .Where(x => x != null) + .ToArray(); + + Assert.AreEqual(2, founders.Length); + + var founder = founders.FirstOrDefault(); + Assert.IsNotNull(founder); + Assert.AreEqual("36542993", founder.RegistrationNumber); + Assert.IsNotNull(founder.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleLegalOwnersTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var legalOwners = response.Result.Companies + .Select(x => x.Roles.LegalOwner) + .Where(x => x != null) + .ToArray(); + + Assert.AreEqual(2, legalOwners.Length); + + var legalOwner = legalOwners.FirstOrDefault(); + Assert.IsNotNull(legalOwner); + Assert.AreEqual("36542993", legalOwner.RegistrationNumber); + Assert.IsNotNull(legalOwner.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleBeneficialOwnersTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var beneficialOwners = response.Result.Companies + .Select(x => x.Roles.BeneficialOwner) + .Where(x => x != null) + .ToArray(); + + Assert.AreEqual(4, beneficialOwners.Length); + + var beneficialOwner = beneficialOwners.FirstOrDefault(); + Assert.IsNotNull(beneficialOwner); + Assert.IsNotNull(beneficialOwner.Equity); + Assert.IsNotNull(beneficialOwner.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleLiquidatorsTest() + { + const string PERSON_ID = "4004056572"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var liquidators = response.Result.Companies + .Select(x => x.Roles.Liquidator) + .Where(y => y != null) + .ToArray(); + + Assert.AreEqual(6, liquidators.Length); + + var liquidator = liquidators.FirstOrDefault(); + Assert.IsNotNull(liquidator); + Assert.AreEqual("Likvidator", liquidator.Title); + Assert.AreEqual("Skifteretten", liquidator.AppointedBy); + Assert.IsNotNull(liquidator.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleAuditorsExecutivesTest() + { + const string PERSON_ID = "4000509800"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var executives = response.Result.Companies + .Where(x => x.Roles.Executives != null) + .SelectMany(x => x.Roles.Executives.HistoricExecutives + .Concat([x.Roles.Executives.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(3, executives.Length); + + var executive = executives.FirstOrDefault(); + Assert.IsNotNull(executive); + Assert.AreEqual("Direktør", executive.Title); + Assert.IsNotNull(executive.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleBoardMembersTest() + { + const string PERSON_ID = "4003990349"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var boardMembers = response.Result.Companies + .Where(x => x.Roles.BoardMembers != null) + .SelectMany(x => x.Roles.BoardMembers.HistoricBoardMembers + .Concat([x.Roles.BoardMembers.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(12, boardMembers.Length); + + var boardMember = boardMembers.FirstOrDefault(); + Assert.IsNotNull(boardMember); + Assert.AreEqual("Formand", boardMember.Title); + Assert.IsNull(boardMember.ElectionMethod); + Assert.IsNull(boardMember.AlternateFor); + Assert.IsFalse(boardMember.IsDirective8Approved); + Assert.IsNotNull(boardMember.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleManagersTest() + { + const string PERSON_ID = "4004026607"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var managers = response.Result.Companies + .Where(x => x.Roles.Managers != null) + .SelectMany(x => x.Roles.Managers.HistoricManagers + .Concat([x.Roles.Managers.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(1, managers.Length); + + var manager = managers.FirstOrDefault(); + Assert.IsNotNull(manager); + Assert.AreEqual("Daglig ledelse", manager.Title); + Assert.IsNull(manager.ElectionMethod); + Assert.IsNotNull(manager.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleAntiMoneyLaunderingAppointeesTest() + { + const string PERSON_ID = "4000181695"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var moneyLaunderingAppointees = response.Result.Companies + .Where(x => x.Roles.AntiMoneyLaunderingAppointees != null) + .SelectMany(x => x.Roles.AntiMoneyLaunderingAppointees.HistoricAntiMoneyLaunderingAppointees + .Concat([x.Roles.AntiMoneyLaunderingAppointees.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(1, moneyLaunderingAppointees.Length); + + var moneyLaunderingAppointee = moneyLaunderingAppointees.FirstOrDefault(); + Assert.IsNotNull(moneyLaunderingAppointee); + Assert.AreEqual("Leder, Reel ejer", moneyLaunderingAppointee.Title); + Assert.IsNotNull(moneyLaunderingAppointee.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleAuthorizedSignatoriesTest() + { + const string PERSON_ID = "4000440948"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var authorizedSignatories = response.Result.Companies + .SelectMany(x => x.Roles.AuthorizedSignatories.HistoricAuthorizedSignatories + .Concat([x.Roles.AuthorizedSignatories.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(1, authorizedSignatories.Length); + + var authorizedSignatory = authorizedSignatories.FirstOrDefault(); + Assert.IsNotNull(authorizedSignatory); + Assert.IsNotNull(authorizedSignatory.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleSpecialFinancialParticipantsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive("Persons can't be Special Financial Participants"); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleLiableParticipantsTest() + { + const string PERSON_ID = "4000148864"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var liableParticipants = response.Result.Companies + .Where(x => x.Roles.LiableParticipants != null) + .SelectMany(x => x.Roles.LiableParticipants.HistoricLiableParticipants + .Concat([x.Roles.LiableParticipants.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(1, liableParticipants.Length); + + var liableParticipant = liableParticipants.FirstOrDefault(); + Assert.IsNotNull(liableParticipant); + Assert.AreEqual("Interessenter", liableParticipant.Role); + Assert.IsNull(liableParticipant.ElectionMethod); + Assert.IsNull(liableParticipant.RegisteredCapital); + Assert.IsNotNull(liableParticipant.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleAssociationRepresentativesTest() + { + const string PERSON_ID = "4009632928"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var associationRepresentatives = response.Result.Companies + .SelectMany(x => x.Roles.AssociationRepresentatives.HistoricAssociationRepresentatives + .Concat([x.Roles.AssociationRepresentatives.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(25, associationRepresentatives.Length); + + var associationRepresentative = associationRepresentatives.FirstOrDefault(); + Assert.IsNotNull(associationRepresentative); + Assert.AreEqual("Foreningsrepræsentant", associationRepresentative.Title); + Assert.IsNotNull(associationRepresentative.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenPersonAndCompanyRoleCertifiedAuditorsTest() + { + const string PERSON_ID = "4000014983"; + + var response = await this.DanishCvrService + .GetRelationsAsync(PERSON_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var certifiedAuditors = response.Result.Companies + .Where(x => x.Roles.CertifiedAuditors != null) + .SelectMany(x => x.Roles.CertifiedAuditors.HistoricCertifiedAuditors + .Concat([x.Roles.CertifiedAuditors.Current]) + .Where(y => y != null)) + .ToArray(); + + Assert.AreEqual(2, certifiedAuditors.Length); + + var certifiedAuditor = certifiedAuditors.FirstOrDefault(); + Assert.IsNotNull(certifiedAuditor); + Assert.AreEqual("Revisionsvirksomhed Stemmeberettiget", certifiedAuditor.Role); + Assert.AreEqual("Weidekampsgade 6, 2300 københavn s", certifiedAuditor.BusinessAddress); + Assert.IsNotNull(certifiedAuditor.VotingRights); + Assert.IsNotNull(certifiedAuditor.UpdatedAt); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyTest() + { + const string COMPANY_EXTERNAL_ID = "4005901124"; + + var response = await this.DanishCvrService + .GetRelationsAsync(COMPANY_EXTERNAL_ID); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.AreEqual(3, response.TotalResults); + + Assert.AreEqual(3, response.Result.Companies.Count()); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndHistoricTest() + { + const string COMPANY_EXTERNAL_ID = "4005901124"; + + var response = await this.DanishCvrService + .GetRelationsAsync(COMPANY_EXTERNAL_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + Assert.AreEqual(11, response.TotalResults); + + Assert.AreEqual(11, response.Result.Companies.Count()); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndPagingTest() + { + const string COMPANY_EXTERNAL_ID = "4005901124"; + + var response = await this.DanishCvrService + .GetRelationsAsync(COMPANY_EXTERNAL_ID, false, new Paging { Count = 2, Skip = 2 }); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + Assert.AreEqual(1, response.Result.Companies.Count()); + + var company = response.Result.Companies.FirstOrDefault(); + Assert.IsNotNull(company); + Assert.AreEqual("43804146", company.RegistrationNumber); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndOrderedCorrectlyTest() + { + const string COMPANY_EXTERNAL_ID = "4005901124"; + + var response = await this.DanishCvrService + .GetRelationsAsync(COMPANY_EXTERNAL_ID, true); + + await this.SaveJsonOrDefault(response.Result); + + Assert.IsNotNull(response); + Assert.IsNotNull(response.Result); + + var result = response.Result.Companies + .Select(x => x.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleFoundersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleLegalOwnersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleBeneficialOwnersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleLiquidatorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleAuditorsExecutivesTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleBoardMembersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleManagersTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleAntiMoneyLaunderingAppointeesTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleAuthorizedSignatoriesTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleSpecialFinancialParticipantsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleLiableParticipantsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleAssociationRepresentativesTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } + + [TestMethod] + public async Task GetRelationsWhenCompanyAndCompanyRoleCertifiedAuditorsTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchCompanies.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchCompanies.cs new file mode 100644 index 0000000..ac1a875 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchCompanies.cs @@ -0,0 +1,1121 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using DanishCvr.Extensions; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Range = DanishCvr.Types.Range; +using DanishCvr.Types; +using DanishCvr.Requests.Models.Enums; +using DanishCvr.Requests; +using DanishCvr.Requests.Models; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task SearchCompaniesByAllTest() + { + const string NAME = "11x Mod"; + string[] businessTypeCodes = ["80", "90", "260"]; + string[] industryCodes = ["620100", "642020"]; + const int MIN = 0; + const int MAX = 200; + var foundedAtFrom = new DateOnly(2018, 1, 1); + var foundedAtTo = new DateOnly(2020, 12, 31); + var dissolvedAtFrom = new DateOnly(2021, 1, 1); + var dissolvedAtTo = new DateOnly(2024, 12, 31); + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + }, + BusinessTypeCodes = businessTypeCodes, + IndustryCodes = industryCodes, + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + }, + FoundedAt = new Period + { + From = foundedAtFrom, + To = foundedAtTo + }, + DissolvedAt = new Period + { + From = dissolvedAtFrom, + To = dissolvedAtTo + }, + IsActive = false, + IsProtectedFromAdvertisment = true + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + } + + [TestMethod] + public async Task SearchCompaniesByNameTest() + { + const string NAME = "Vivet"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME, + IncludeAlternativeNames = false, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(18, results.Length); + + var all = results.All(x => x.Company.Name.Value.ToUpper().Contains(NAME.ToUpper())); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByNameWhenAlternativeNameTest() + { + const string ALTERNATIVE_NAME = "Biz ap"; + const string EXPECTED_NAME = "Vivet Software ApS"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = ALTERNATIVE_NAME, + IncludeAlternativeNames = true, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.Company.Name.Value); + } + + [TestMethod] + public async Task SearchCompaniesByNameWhenAlternativeNameAndNotIncludedTest() + { + const string ALTERNATIVE_NAME = "Biz ap"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = ALTERNATIVE_NAME, + IncludeAlternativeNames = false, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(0, results.Length); + } + + [TestMethod] + public async Task SearchCompaniesByNameWhenHistoricNameTest() + { + const string HISTORIC_NAME = "Darth Vivet"; + const string EXPECTED_NAME = "Vivet Software ApS"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = HISTORIC_NAME, + IncludeAlternativeNames = false, + IncludeHistoricNames = true + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.Company.Name.Value); + } + + [TestMethod] + public async Task SearchCompaniesByNameWhenHistoricNameAndNotIncludedTest() + { + const string HISTORIC_NAME = "Darth Vivet"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = HISTORIC_NAME, + IncludeAlternativeNames = false, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(0, results.Length); + } + + [TestMethod] + public async Task SearchCompaniesByNameAndWhitespaceTest() + { + const string NAME = "11x Mod"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + + var all = results.All(x => x.Company.Name.Value.ToUpper().Contains(NAME.ToUpper())); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByNameAndIncompletePhraseTest() + { + const string NAME = "micros"; + const string EXPECTED_NAME = "MICROSTAR HOLDING ApS"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.Company.Name.Value); + } + + [TestMethod] + public async Task SearchCompaniesByNameAndIncompletePhraseAndMultipleWordsTest() + { + const string NAME_PART_ONE = "Vivet"; + const string NAME_PART_TWO = "Soft"; + const string NAME = $"{NAME_PART_ONE} {NAME_PART_TWO}"; + const string EXPECTED_NAME = "Vivet Software ApS"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.Company.Name.Value); + } + + [TestMethod] + public async Task SearchCompaniesByNameAndSortByNameAscendingTest() + { + const string NAME = "Microsoft"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = CompanySortBy.Name + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(15, results.Length); + + var result = results + .Select(x => x.Company.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchCompaniesByNameAndSortByNameDescendingTest() + { + const string NAME = "Microsoft"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = NAME + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = CompanySortBy.Name, + Direction = SortDirection.Descending + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(15, results.Length); + + var result = results + .Select(x => x.Company.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) >= 0, $"The list is not in correct descending order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchCompaniesByBusinessTypeCodesTest() + { + string[] businessTypeCodes = ["80", "90", "260"]; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + BusinessTypeCodes = businessTypeCodes + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Type.Code is "80" or "90" or "260"); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByWithinTest() + { + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Within = new Within + { + Location = new Location + { + Latitude = 55.14456823868534, + Longitude = 8.494448565055759 + }, + Radius = 1 + } + }, + Paging = + { + Count = 500 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.IsTrue(results.Length > 400); + Assert.IsTrue(results.Length < 500); + } + + [TestMethod] + public async Task SearchCompaniesByIndustryCodesTest() + { + string[] industryCodes = ["620100", "642020"]; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + IndustryCodes = industryCodes + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Industry.Code is "620100" or "642020"); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByIndustryCodesWhenSecondaryIndustryTest() + { + const string EXPECTED_NAME = "MICROSOFT DANMARK ApS"; + + string[] industryCodes = ["461890"]; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Names = + { + Name = "Microsoft Danmark" + }, + IndustryCodes = industryCodes + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.Company.Name.Value); + } + + [TestMethod] + public async Task SearchCompaniesByStatusTest() + { + const string STATUS = "Normal"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Statuses = + [ + STATUS + ] + }, + Paging = + { + Count = 250, + Skip = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Status.Value == STATUS); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByStatusWhenWhitespaceTest() + { + const string STATUS = "OPLØST EFTER ERKLÆRING"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Statuses = + [ + STATUS + ] + }, + Paging = + { + Count = 250, + Skip = 0 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Status.Value == STATUS.ToStringPretty()); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByStatusWhenAktivTest() + { + const string STATUS = "Aktiv"; + const string EXPECTED_STATUS = "Normal"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Statuses = + [ + STATUS + ] + }, + Paging = + { + Count = 250, + Skip = 500 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Status.Value == EXPECTED_STATUS); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByStatusAndMultipleTest() + { + const string STATUS1 = "Opløst efter grænseoverskridende fusion"; + const string STATUS2 = "Opløst efter grænseoverskridende hjemstedsflytning"; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + Statuses = + [ + STATUS1, + STATUS2 + ] + }, + Paging = + { + Count = 500, + Skip = 0 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var all = results.All(x => x.Company.Status.Value is STATUS1 or STATUS2); + Assert.IsTrue(all); + + var existsStatus1 = results.Any(x => x.Company.Status.Value == STATUS1); + Assert.IsTrue(existsStatus1); + + var existsStatus2 = results.Any(x => x.Company.Status.Value == STATUS2); + Assert.IsTrue(existsStatus2); + } + + [TestMethod] + public async Task SearchCompaniesByNumberOfEmployeesTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.Employees == null || x.Company.Employees.NumberOfEmployees is >= MIN and <= MAX); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByNumberOfEmployeesAndSortingByNumberOfEmployeesAscendingTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = CompanySortBy.NumberOfEmployees + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var result = results + .Select(x => x.Company.Employees.NumberOfEmployees) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + Assert.IsTrue(result[i - 1] <= result[i], $"The array is not in correct ascending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + } + } + + [TestMethod] + public async Task SearchCompaniesByNumberOfEmployeesAndSortingByNumberOfEmployeesDescendingTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = CompanySortBy.NumberOfEmployees + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var result = results + .Select(x => x.Company.Employees.NumberOfEmployees) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + Assert.IsTrue(result[i - 1] >= result[i], $"The array is not in correct descending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + } + } + + [TestMethod] + public async Task SearchCompaniesByFoundedAtTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // FoundedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var all = results.All(x => x.Company.FoundedAt >= from && x.Company.FoundedAt <= to); + //Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByFoundedAtAndSortingByFoundedAtAscendingTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // FoundedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // }, + // Sorting = + // { + // By = CompanySortBy.FoundedAt, + // Direction = SortDirection.Ascending + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var result = results + // .Select(x => x.Company.FoundedAt) + // .ToArray(); + + //for (var i = 1; i < result.Length; i++) + //{ + // Assert.IsTrue(result[i - 1] <= result[i], $"The array is not in correct ascending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + //} + } + + [TestMethod] + public async Task SearchCompaniesByFoundedAtAndSortingByFoundedAtDescendingTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // FoundedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // }, + // Sorting = + // { + // By = CompanySortBy.FoundedAt, + // Direction = SortDirection.Descending + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var result = results + // .Select(x => x.Company.FoundedAt) + // .ToArray(); + + //for (var i = 1; i < result.Length; i++) + //{ + // Assert.IsTrue(result[i - 1] >= result[i], $"The array is not in correct descending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + //} + } + + [TestMethod] + public async Task SearchCompaniesByDissolvedAtTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // DissolvedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var all = results.All(x => x.Company.DissolvedAt >= from && x.Company.DissolvedAt <= to); + //Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByDissolvedAtAndSortingByDissolvedAtAscendingTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // DissolvedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var result = results + // .Select(x => x.Company.DissolvedAt) + // .ToArray(); + + //for (var i = 1; i < result.Length; i++) + //{ + // Assert.IsTrue(result[i - 1] <= result[i], $"The array is not in correct ascending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + //} + } + + [TestMethod] + public async Task SearchCompaniesByDissolvedAtAndSortingByDissolvedAtDescendingTest() + { + await Task.CompletedTask; + + Assert.Inconclusive(); + + //var from = new DateOnly(2010, 1, 1); + //var to = new DateOnly(2020, 12, 31); + + //var response = await this.DanishCvrService + // .SearchCompaniesAsync(new SearchCompaniesRequest + // { + // Criteria = + // { + // DissolvedAt = new Period + // { + // From = from, + // To = to + // } + // }, + // Paging = + // { + // Count = 250 + // } + // }); + + //var results = response.Results.ToArray(); + + //Assert.IsNotNull(results); + //Assert.AreEqual(250, results.Length); + + //var result = results + // .Select(x => x.Company.DissolvedAt) + // .ToArray(); + + //for (var i = 1; i < result.Length; i++) + //{ + // Assert.IsTrue(result[i - 1] >= result[i], $"The array is not in correct descending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + //} + } + + [TestMethod] + public async Task SearchCompaniesByIsActiveTest() + { + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + IsActive = true + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.IsActive); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByIsActiveWhenFalseTest() + { + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + IsActive = false + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => !x.Company.IsActive); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByIsProtectedFromAdvertismentTest() + { + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + IsProtectedFromAdvertisment = true + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.Company.IsProtectedFromAdvertisement.GetValueOrDefault()); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByIsProtectedFromAdvertismentWhenFalseTest() + { + var response = await this.DanishCvrService + .SearchCompaniesAsync(new SearchCompaniesRequest + { + Criteria = + { + IsProtectedFromAdvertisment = false + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => !x.Company.IsProtectedFromAdvertisement.GetValueOrDefault()); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchCompaniesByRegistrationNumberPrefixTest() + { + const string CVR_NUMMER = "13612*"; + + var response = await this.DanishCvrService + .GetCompaniesAsync(CVR_NUMMER, new Paging { Count = 10 }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(10, results.Length); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchPersons.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchPersons.cs new file mode 100644 index 0000000..d6c823c --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchPersons.cs @@ -0,0 +1,144 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using DanishCvr.Requests.Models.Enums; +using DanishCvr.Requests; +using DanishCvr.Types; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task SearchPersonsByNameTest() + { + const string NAME = "Michael"; + + var response = await this.DanishCvrService + .SearchPersonsAsync(new SearchPersonsRequest + { + Criteria = + { + Name = NAME + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + } + + [TestMethod] + public async Task SearchPersonsByNameAndSortByNameAscendingTest() + { + const string NAME = "Michael"; + + var response = await this.DanishCvrService + .SearchPersonsAsync(new SearchPersonsRequest + { + Criteria = + { + Name = NAME + }, + Sorting = + { + By = PersonSortBy.Name + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(25, results.Length); + + var result = results + .Select(x => x.Person.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchPersonsByNameAndSortByNameDescendingTest() + { + const string NAME = "Michael"; + + var response = await this.DanishCvrService + .SearchPersonsAsync(new SearchPersonsRequest + { + Criteria = + { + Name = NAME + }, + Paging = + { + Skip = 500 + }, + Sorting = + { + By = PersonSortBy.Name, + Direction = SortDirection.Descending + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(25, results.Length); + + var result = results + .Select(x => x.Person.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) >= 0, $"The list is not in correct descending order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchPersonsByWithinTest() + { + var response = await this.DanishCvrService + .SearchPersonsAsync(new SearchPersonsRequest + { + Criteria = + { + Within = new Within + { + Location = new Location + { + Latitude = 55.14456823868534, + Longitude = 8.494448565055759 + }, + Radius = 1 + } + }, + Paging = + { + Count = 500 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.IsTrue(results.Length > 140); + Assert.IsTrue(results.Length < 170); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchProductionUnits.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchProductionUnits.cs new file mode 100644 index 0000000..9188f9f --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.SearchProductionUnits.cs @@ -0,0 +1,642 @@ +using System.Linq; +using System; +using System.Threading.Tasks; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Range = DanishCvr.Types.Range; +using DanishCvr.Types; +using DanishCvr.Requests.Models.Enums; +using DanishCvr.Requests; + +namespace Tests.DanishCvr; + +public partial class DanishCvrServiceTests +{ + [TestMethod] + public async Task SearchProductionUnitsTest() + { + var responses = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Paging = + { + Count = 250 + } + }); + + Assert.IsNotNull(responses); + Assert.AreEqual(250, responses.Results.Count()); + } + + [TestMethod] + public async Task SearchProductionUnitsByAllTest() + { + const string NAME = "11x Mod"; + string[] industryCodes = ["620100", "642020"]; + const int MIN = 0; + const int MAX = 200; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + }, + IndustryCodes = industryCodes, + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + }, + IsActive = false + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameTest() + { + const string NAME = "Vivet"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(19, results.Length); + + var all = results.All(x => x.ProductionUnit.Name.Value.ToUpper().Contains(NAME.ToUpper())); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameWhenHistoricNameTest() + { + const string HISTORIC_NAME = "Darth Vivet"; + const string EXPECTED_NAME = "Vivet Software ApS"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = HISTORIC_NAME, + IncludeHistoricNames = true + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.ProductionUnit.Name.Value); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameWhenHistoricNameAndNotIncludedTest() + { + const string HISTORIC_NAME = "Darth Vivet"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = HISTORIC_NAME, + IncludeHistoricNames = false + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(0, results.Length); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameAndWhitespaceTest() + { + const string NAME = "11x Mod"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + + var all = results.All(x => x.ProductionUnit.Name.Value.ToUpper().Contains(NAME.ToUpper())); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameAndIncompletePhraseTest() + { + const string NAME = "microsa"; + const string EXPECTED_NAME = "MICROSAP"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.ProductionUnit.Name.Value); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameAndIncompletePhraseAndMultipleWordsTest() + { + const string NAME_PART_ONE = "Vivet"; + const string NAME_PART_TWO = "Softw"; + const string NAME = $"{NAME_PART_ONE} {NAME_PART_TWO}"; + const string EXPECTED_NAME = "Vivet Software ApS"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + } + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.ProductionUnit.Name.Value); + } + + [TestMethod] + public async Task SearchProductionUnitsByNameAndSortByNameAscendingTest() + { + const string NAME = "Microsoft"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = ProductionUnitSortBy.Name + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(22, results.Length); + + var result = results + .Select(x => x.ProductionUnit.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) <= 0, $"The list is not in correct order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchProductionUnitsByNameAndSortByNameDescendingTest() + { + const string NAME = "Microsoft"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = NAME + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = ProductionUnitSortBy.Name, + Direction = SortDirection.Descending + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(22, results.Length); + + var result = results + .Select(x => x.ProductionUnit.Name.Value) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + var previous = result[i - 1].Trim(); + var current = result[i].Trim(); + + Assert.IsTrue(string.Compare(previous, current, StringComparison.OrdinalIgnoreCase) >= 0, $"The list is not in correct descending order at index {i - 1} ('{previous}') and {i} ('{current}')."); + } + } + + [TestMethod] + public async Task SearchProductionUnitsByWithinTest() + { + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Within = new Within + { + Location = new Location + { + Latitude = 55.14456823868534, + Longitude = 8.494448565055759 + }, + Radius = 1 + } + }, + Paging = + { + Count = 800 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.IsTrue(results.Length > 600); + Assert.IsTrue(results.Length < 800); + } + + [TestMethod] + public async Task SearchProductionUnitsByIndustryCodesTest() + { + string[] industryCodes = ["620100", "642020"]; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + IndustryCodes = industryCodes + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.ProductionUnit.Industry?.Code is "620100" or "642020"); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByIndustryCodesWhenSecondaryIndustryTest() + { + const string EXPECTED_NAME = "MICROSOFT DANMARK APS"; + + string[] industryCodes = ["461890"]; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Names = + { + Name = "Microsoft Danmark" + }, + IndustryCodes = industryCodes + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(1, results.Length); + + var first = results.FirstOrDefault(); + Assert.IsNotNull(first); + Assert.AreEqual(EXPECTED_NAME, first.ProductionUnit.Name.Value); + } + + [TestMethod] + public async Task SearchProductionUnitsByStatusTest() + { + const string STATUS = "Normal"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Statuses = + [ + STATUS + ] + }, + Paging = + { + Count = 250, + Skip = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.ProductionUnit.Status.Current.Value == STATUS); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByStatusAndInactiveTest() + { + const string STATUS = "Ophørt"; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + Statuses = + [ + STATUS + ] + }, + Paging = + { + Count = 250, + Skip = 0 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.ProductionUnit.Status.Current.Value == STATUS); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByNumberOfEmployeesTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.ProductionUnit.Employees == null || x.ProductionUnit.Employees.NumberOfEmployees is >= MIN and <= MAX); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByNumberOfEmployeesAndSortingByNumberOfEmployeesAscendingTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = ProductionUnitSortBy.NumberOfEmployees + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var result = results + .Select(x => x.ProductionUnit.Employees.NumberOfEmployees) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + Assert.IsTrue(result[i - 1] <= result[i], $"The array is not in correct ascending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + } + } + + [TestMethod] + public async Task SearchProductionUnitsByNumberOfEmployeesAndSortingByNumberOfEmployeesDescendingTest() + { + const int MIN = 10; + const int MAX = 20; + + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + NumberOfEmployees = new Range + { + From = MIN, + To = MAX + } + }, + Paging = + { + Count = 250 + }, + Sorting = + { + By = ProductionUnitSortBy.NumberOfEmployees + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var result = results + .Select(x => x.ProductionUnit.Employees?.NumberOfEmployees) + .ToArray(); + + for (var i = 1; i < result.Length; i++) + { + Assert.IsTrue(result[i - 1] >= result[i], $"The array is not in correct descending order at index {i - 1} ('{result[i - 1]}') and {i} ('{result[i]}')."); + } + } + + [TestMethod] + public async Task SearchProductionUnitsByIsActiveTest() + { + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + IsActive = true + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => x.ProductionUnit.Status.IsActive); + Assert.IsTrue(all); + } + + [TestMethod] + public async Task SearchProductionUnitsByIsActiveWhenFalseTest() + { + var response = await this.DanishCvrService + .SearchProductionUnitsAsync(new SearchProductionUnitsRequest + { + Criteria = + { + IsActive = false + }, + Paging = + { + Count = 250 + } + }); + + var results = response.Results.ToArray(); + + Assert.IsNotNull(results); + Assert.AreEqual(250, results.Length); + + var all = results.All(x => !x.ProductionUnit.Status.IsActive); + Assert.IsTrue(all); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/DanishCvrServiceTests.cs b/.tests/Tests.DanishCvr/DanishCvrServiceTests.cs new file mode 100644 index 0000000..5ffbe79 --- /dev/null +++ b/.tests/Tests.DanishCvr/DanishCvrServiceTests.cs @@ -0,0 +1,11 @@ +using DanishCvr.Interfaces; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr; + +[TestClass] +public partial class DanishCvrServiceTests : BaseTests +{ + private IDanishCvrService DanishCvrService => this.serviceProvider.GetService(); +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/Helpers/PostalCodesTests.cs b/.tests/Tests.DanishCvr/Helpers/PostalCodesTests.cs new file mode 100644 index 0000000..b77ae85 --- /dev/null +++ b/.tests/Tests.DanishCvr/Helpers/PostalCodesTests.cs @@ -0,0 +1,36 @@ +using System.Linq; +using DanishCvr.Helpers; +using DanishCvr.Types; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.DanishCvr.Helpers; + +[TestClass] +public class PostalCodesTests : BaseTests +{ + [TestMethod] + public void GetPostalCodesTest() + { + var postalCodes = PostalCodes.GetPostalCodes(); + + Assert.AreEqual(1089, postalCodes.Count()); + } + + [TestMethod] + public void GetPostalCodesWithinTest() + { + var within = new Within + { + Location = new Location + { + Latitude = 55.65941452, + Longitude = 12.49869399 + }, + Radius = 1 + }; + + var postalCodes = PostalCodes.GetPostalCodesWithin(within); + + Assert.AreEqual(3, postalCodes.Count()); + } +} \ No newline at end of file diff --git a/.tests/Tests.DanishCvr/Tests.DanishCvr.csproj b/.tests/Tests.DanishCvr/Tests.DanishCvr.csproj new file mode 100644 index 0000000..87ca61c --- /dev/null +++ b/.tests/Tests.DanishCvr/Tests.DanishCvr.csproj @@ -0,0 +1,32 @@ + + + + net10.0 + false + true + aecd7d21-45f4-4493-8dd7-d53e6219056d + + + + + + + + + + + + + + + + + + + + + Always + + + + diff --git a/.tests/Tests.DanishCvr/appsettings.json b/.tests/Tests.DanishCvr/appsettings.json new file mode 100644 index 0000000..fd529b1 --- /dev/null +++ b/.tests/Tests.DanishCvr/appsettings.json @@ -0,0 +1,10 @@ +{ + "Logging": { + }, + "DanishCvr": { + "Username": null, + "Password": null, + "RequestTimeout": "00:02:00", + "IncludeRawJson": true + } +} \ No newline at end of file diff --git a/DanishCvr.sln b/DanishCvr.sln new file mode 100644 index 0000000..5d2c9b3 --- /dev/null +++ b/DanishCvr.sln @@ -0,0 +1,52 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 18 +VisualStudioVersion = 18.7.11925.98 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DanishCvr", "DanishCvr\DanishCvr.csproj", "{83C0EE4D-CB54-4183-9AD4-C85F61F80C9D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".solution", ".solution", "{28ED9C01-19FF-43EB-B8B2-76CBF3FCB6BD}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + icon.png = icon.png + LICENSE = LICENSE + README.md = README.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{6D9C4AAA-6FBA-4B9E-B4AB-CA6A7EBECA54}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{F9F7BCC5-8A0A-4F5D-B7C9-7CA5BB055FC6}" + ProjectSection(SolutionItems) = preProject + .github\workflows\build-and-deploy.yml = .github\workflows\build-and-deploy.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".tests", ".tests", "{D1B8DEAF-3A4B-4600-9C61-C4B8934305CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.DanishCvr", ".tests\Tests.DanishCvr\Tests.DanishCvr.csproj", "{62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {83C0EE4D-CB54-4183-9AD4-C85F61F80C9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83C0EE4D-CB54-4183-9AD4-C85F61F80C9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83C0EE4D-CB54-4183-9AD4-C85F61F80C9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83C0EE4D-CB54-4183-9AD4-C85F61F80C9D}.Release|Any CPU.Build.0 = Release|Any CPU + {62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {F9F7BCC5-8A0A-4F5D-B7C9-7CA5BB055FC6} = {6D9C4AAA-6FBA-4B9E-B4AB-CA6A7EBECA54} + {62266B38-FCB3-48E9-B0EE-4D8A70FB1D7D} = {D1B8DEAF-3A4B-4600-9C61-C4B8934305CC} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B3F4D62A-846E-4EE6-85A1-F7744EA24CA5} + EndGlobalSection +EndGlobal diff --git a/DanishCvr/Consts/AttributTyper.cs b/DanishCvr/Consts/AttributTyper.cs new file mode 100644 index 0000000..53e5af1 --- /dev/null +++ b/DanishCvr/Consts/AttributTyper.cs @@ -0,0 +1,97 @@ +namespace DanishCvr.Consts; + +/// +/// Attribut Typer. +/// +internal class AttributTyper +{ + // Virksomhed Attributer + internal const string FORMÅL = "FORMÅL"; + internal const string VEDTÆGT_SENESTE = "VEDTÆGT_SENESTE"; + internal const string STADFÆSTET_AF = "STADFÆSTET_AF"; // navn for ekstern myndighed,der har stadfæstet virksomhedens vedtægt + internal const string STADFÆSTELSESDATO = "STADFÆSTELSESDATO"; // dato for ekstern myndigheds stadfæstelse af virksomhedens vedtægt + internal const string REVISION_FRAVALGT = "REVISION_FRAVALGT"; + internal const string BØRSNOTERET = "BØRSNOTERET"; + internal const string KAPITAL = "KAPITAL"; + internal const string KAPITALVALUTA = "KAPITALVALUTA"; + internal const string KAPITALKLASSER = "KAPITALKLASSER"; + internal const string KAPITAL_DELVIST = "KAPITAL_DELVIST"; + internal const string REGNSKABSÅR_SLUT = "REGNSKABSÅR_SLUT"; + internal const string REGNSKABSÅR_START = "REGNSKABSÅR_START"; + internal const string FØRSTE_REGNSKABSPERIODE_SLUT = "FØRSTE_REGNSKABSPERIODE_SLUT"; + internal const string FØRSTE_REGNSKABSPERIODE_START = "FØRSTE_REGNSKABSPERIODE_START"; + internal const string OMLÆGNINGSPERIODE_START = "OMLÆGNINGSPERIODE_START"; + internal const string OMLÆGNINGSPERIODE_SLUT = "OMLÆGNINGSPERIODE_SLUT"; + internal const string REGNSKABSÅR_FRITEKST = "REGNSKABSÅR_FRITEKST"; + internal const string TEGNINGSREGEL = "TEGNINGSREGEL"; + internal const string STATSLIG_VIRK = "STATSLIG_VIRK"; + internal const string SOCIAL_ØKONOMISK_VIRKSOMHED = "SOCIAL_ØKONOMISK_VIRKSOMHED"; + internal const string OMFATTET_AF_LOV_OM_HVIDVASK_OG_TERRORFINANSIERING = "OMFATTET_AF_LOV_OM_HVIDVASK_OG_TERRORFINANSIERING"; + internal const string FINANSIELT_FORMÅL = "FINANSIELT_FORMÅL"; // Virksomheden har finansielt formål + internal const string FINANSIEL_DELTYPE = "FINANSIEL_DELTYPE"; // type af finansiel virksomhed + internal const string EJERREGISTRERING_UNDER_5_PROCENT = "EJERREGISTRERING_UNDER_5_PROCENT"; // kapitalselskabet har foretaget en lovlig ejerregistrering, men har kun ejere med kapitalandele under 5% + internal const string KONCESSIONSDATO = "KONCESSIONSDATO"; // tilstedeværelsen af dette objekt udtrykker registreringen af en koncession + internal const string TILSYN_KATEGORI = "TILSYN_KATEGORI"; + internal const string MYNDIGHED_ANDEN = "MYNDIGHED_ANDEN"; // anden myndighed end Erhvervsstyrelsen, som har tilsyn eller skal godkende ændringer før registrering + internal const string SØV_IEF_TILSYN = "SØV_IEF_TILSYN"; // fritekst,som kan anvendes for SØV virksomheder,som er fonde,som ikke er omfattet af lov om erhvervsdrivende fonde eller lov om fonde og visse foreninger,som er under tilsyn + internal const string SØV_IEF_TILSYN_TEKST = "SØV_IEF_TILSYN_TEKST"; // attribut anvendes for SØV virksomheder,som er fonde,som ikke er omfattet af lov om erhvervsdrivende fonde eller lov om fonde og visse foreninger + internal const string TILLADELSESDATO_FONDSMYNDIGHED = "TILLADELSESDATO_FONDSMYNDIGHED"; // erhvervsdrivende fonde skal have dato for fondsmyndighedes tilladelse + internal const string OVERTAGET_AF_FINANSIEL_STABILITET = "OVERTAGET_AF_FINANSIEL_STABILITET"; // Markering af Finansiel Stabilitet har overtaget kontrol med virksomheden + internal const string OFFENTLIG_EJERBOG = "OFFENTLIG_EJERBOG"; + // internal const string BINAVNE = "BINAVNE"; + // internal const string PSEUDOCVRNR = "PSEUDOCVRNR"; + // internal const string NAVN_IDENTITET = "NAVN_IDENTITET"; + // internal const string ARKIV_REGISTRERINGSNUMMER = "ARKIV_REGISTRERINGSNUMMER"; + // internal const string REGISTRERINGSNUMMER = "REGISTRERINGSNUMMER"; + // internal const string VIRKSOMHEDSSTATUS = "VIRKSOMHEDSSTATUS"; + // internal const string STIFTET_FØR_1900 = "STIFTET_FØR_1900"; + // internal const string GENOPTAGELSE_TVANGSOPLØSNING = "GENOPTAGELSE_TVANGSOPLØSNING"; + // internal const string OPLØSNINGSTRUSSEL_SENESTE = "OPLØSNINGSTRUSSEL_SENESTE"; + // internal const string REGISTRERING_LIKVIDATION = "REGISTRERING_LIKVIDATION"; + // internal const string HJEMLANDS_VIRKSOMHEDSBETEGNELSE = "HJEMLANDS_VIRKSOMHEDSBETEGNELSE"; + // internal const string HJEMLANDS_REGISTRERINGSNØGLE = "HJEMLANDS_REGISTRERINGSNØGLE"; + // internal const string KAN_IKKE_IDENTIFICERE_REELLE_EJERE = "KAN_IKKE_IDENTIFICERE_REELLE_EJERE"; + // internal const string BYGNINGSNUMMER = "BYGNINGSNUMMER"; + // internal const string HVIDVASK_VEKSELKONTOR_FRANCHISE_FOR = "HVIDVASK_VEKSELKONTOR_FRANCHISE_FOR"; // navnet på virksomheden som har solgt franchiset + // internal const string HVIDVASK_VALUTAHANDEL_FRANCHISE_FOR = "HVIDVASK_VALUTAHANDEL_FRANCHISE_FOR"; // navnet på virksomheden som har solgt franchiset + + + // Organisation Attributter + internal const string HVIDVASK_ERHVERVSAKTIVITET = "HVIDVASK_ERHVERVSAKTIVITET"; + internal const string REVISOR_REGISTRERING_REVISIONSVIRKSOMHEDSTYPE = "REVISOR_REGISTRERING_REVISIONSVIRKSOMHEDSTYPE"; + internal const string REVISOR_REGISTRERING_REVISIONSFAGLIGE_NETVAERK = "REVISOR_REGISTRERING_REVISIONSFAGLIGE_NETVAERK"; + internal const string REVISOR_REGISTRERING_KONTAKTPERSON = "REVISOR_REGISTRERING_KONTAKTPERSON"; + internal const string REVISOR_REGISTRERING_HOLDINGVIRKSOMHED = "REVISOR_REGISTRERING_HOLDINGVIRKSOMHED"; + internal const string REVISOR_REGISTRERING_PIE_SELVANGIVET = "REVISOR_REGISTRERING_PIE_SELVANGIVET"; + // internal const string REVISOR_REGISTRERING_HOLDINGSTATUS = "REVISOR_REGISTRERING_HOLDINGSTATUS"; + // internal const string REVISOR_REGISTRERING_UDENLANDSK_REGISTRERINGSNUMMER = "REVISOR_REGISTRERING_UDENLANDSK_REGISTRERINGSNUMMER"; + // internal const string REVISOR_REGISTRERING_OPHOERSAARSAG = "REVISOR_REGISTRERING_OPHOERSAARSAG"; + // internal const string REVISOR_REGISTRERING_STEMMEANDEL_GODKENDTTOTAL_PROCENT = "REVISOR_REGISTRERING_STEMMEANDEL_GODKENDTTOTAL_PROCENT"; + + + // MedlemsData Attributter + internal const string FUNKTION = "FUNKTION"; + internal const string EJERANDEL_STEMMERET_PROCENT = "EJERANDEL_STEMMERET_PROCENT"; + internal const string EJERANDEL_PROCENT = "EJERANDEL_PROCENT"; + internal const string SÆRLIGE_EJERFORHOLD = "SÆRLIGE_EJERFORHOLD"; + internal const string SÆRLIGE_EJERFORHOLD_BESKRIVELSE = "SÆRLIGE_EJERFORHOLD_BESKRIVELSE"; + internal const string EJERANDEL_KAPITALKLASSE = "EJERANDEL_KAPITALKLASSE"; + internal const string EJERANDEL_MEDDELELSE_DATO = "EJERANDEL_MEDDELELSE_DATO"; + internal const string EJERANDEL_SOM_PANT_STEMMERET_PROCENT = "EJERANDEL_SOM_PANT_STEMMERET_PROCENT"; + internal const string EJERANDEL_DOKUMENT_ID = "EJERANDEL_DOKUMENT_ID"; + internal const string VALGFORM = "VALGFORM"; + internal const string BETYDELIG_INDFLYDELSE_VIA_ROLLE = "BETYDELIG_INDFLYDELSE_VIA_ROLLE"; + internal const string KOMPLEMENTAR_INDSKUDSVALUTA = "KOMPLEMENTAR_INDSKUDSVALUTA"; + internal const string KOMPLEMENTAR_INDSKUDSKAPITAL = "KOMPLEMENTAR_INDSKUDSKAPITAL"; + internal const string UDNÆVNT_AF = "UDNÆVNT_AF"; + internal const string SUPPLEANT_FOR_DELTAGER_NR = "SUPPLEANT_FOR_DELTAGER_NR"; + internal const string BEGUNSTIGET_GRUPPE = "BEGUNSTIGET_GRUPPE"; + internal const string BEGUNSTIGET_RETSKRAV = "BEGUNSTIGET_RETSKRAV"; + internal const string REVISOR_REGISTRERING_GODKENDT_8DIREKTIV = "REVISOR_REGISTRERING_GODKENDT8DIREKTIV"; + internal const string FORRETNINGSADRESSE = "FORRETNINGSADRESSE"; + internal const string REVISOR_REGISTRERING_STEMMEANDEL_PROCENT = "REVISOR_REGISTRERING_STEMMEANDEL_PROCENT"; + internal const string REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERUNDTAGELSE = "REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERUNDTAGELSE"; + internal const string REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERTYPE = "REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERTYPE"; + // internal const string EJERANDEL_DOKUMENT_ID = "EJERANDEL_DOKUMENT_ID"; + // internal const string EJERANDEL_MEDDELELSE_DATO = "EJERANDEL_MEDDELELSE_DATO"; // not needed because the actual other values have perioder. +} \ No newline at end of file diff --git a/DanishCvr/Consts/AttributVaerdier.cs b/DanishCvr/Consts/AttributVaerdier.cs new file mode 100644 index 0000000..eb3725f --- /dev/null +++ b/DanishCvr/Consts/AttributVaerdier.cs @@ -0,0 +1,90 @@ +namespace DanishCvr.Consts; + +/// +/// Attribut Vaerdier. +/// +internal class AttributVaerdier +{ + internal const string DIREKTION = "DIREKTION"; + internal const string DIREKTIONX = "DIREKTIONX"; + internal const string DIREKTØR_I_IFS = "DIREKTØR I IFS"; + internal const string DIREKTØR = "DIREKTØR"; + internal const string ADM_DIREKTØR = "ADM. DIREKTØR"; + internal const string DIREKTIONSSEKRETÆR = "DIREKTIONSSEKRETÆR"; + internal const string BESTYRELSE = "BESTYRELSE"; + internal const string REELLE_EJERE = "REELLE EJERE"; + internal const string REELLE_EJERER = "REELLE EJERER"; + internal const string REELLE_EJEREX = "REELLE EJEREX"; + internal const string EJERREGISTER = "EJERREGISTER"; + internal const string EJERREGISTERX = "EJERREGISTERX"; + internal const string HOVEDSELSKAB = "HOVEDSELSKAB"; + internal const string HVIDVASK = "HVIDVASK"; + internal const string FUSION = "FUSION"; + internal const string SPALTNING = "SPALTNING"; + internal const string REVISIONSVIRKSOMHEDREGISTER = "REVISIONSVIRKSOMHEDREGISTER"; + internal const string REVISIONSVIRKSOMHEDSTEMMEBERETTIGEDE = "REVISIONSVIRKSOMHEDSTEMMEBERETTIGEDE"; + internal const string REVISIONSVIRKSOMHEDUDENLANDSKEMYNDIGHEDER = "REVISIONSVIRKSOMHEDUDENLANDSKEMYNDIGHEDER"; + internal const string FORMAND = "FORMAND"; + internal const string HOVEDBESTYRELSE = "HOVEDBESTYRELSE"; + internal const string LIKVIDATOR = "LIKVIDATOR"; + internal const string LIKVIDATOR_IHT_VEDTÆGT = "LIKVIDAOR IHT.VEDTÆGT"; + internal const string LIKVIDATOR_E_VEDTÆGT = "LIKVIDATOR E.VEDTÆGT"; + internal const string LIKVDATOR = "LIKVDATOR"; + internal const string FILIALBESTYRERE = "FILIALBESTYRERE"; + internal const string FILIALBESTYRER = "FILIALBESTYRER"; + internal const string FORVALTNINGSCHEF = "FORVALTNINGSCHEF"; + internal const string FORRETNINGSFØRER = "FORRETNINGSFØRER"; + internal const string BESTYRELSE_DIREKTION = "BESTYRELSE/DIREKTION"; + internal const string DAGLIG_LEDELSE = "DAGLIG LEDELSE"; + internal const string UDDELER = "UDDELER"; + internal const string TILSYNSRÅD = "TILSYNSRÅD"; + internal const string LEDELSE = "LEDELSE"; + internal const string ANDET_LEDELSESORGAN = "ANDET LEDELSESORGAN"; + internal const string KONTROLRÅD = "KONTROLRÅD"; + internal const string DRIFTSLEDER = "DRIFTSLEDER"; + internal const string ANDEN_DAGLIG_LEDELSE = "ANDEN DAGLIG LEDELSE"; + internal const string PROKURIST = "PROKURIST"; + internal const string ØVERSTE_LEDELSESORGAN = "ØVERSTE LEDELSESORGAN"; + internal const string BESTYRER = "BESTYRER"; + internal const string LEDELSESKOMITEE = "LEDELSESKOMITEE"; + internal const string LEDER_FOR_JOINT_VENTURE = "LEDER FOR JOINT VENTURE"; + internal const string CITYCHEF = "CITYCHEF"; + internal const string OVERORDNET_LEDELSE = "OVERORDNET LEDELSE"; + internal const string DAGLIG_LEDELSE_OG_ADM = "DAGLIG LEDELSE OG ADM"; + internal const string SKOLELEDER = "SKOLELEDER"; + internal const string ADMINISTRATIV_LEDER = "ADMINISTRATIV LEDER"; + internal const string KÆDECHEF = "KÆDECHEF"; + internal const string LEDELSESORGAN = "LEDELSESORGAN"; + internal const string MEJERIBESTYRER = "MEJERIBESTYRER"; + internal const string STATIONSLEDER = "STATIONSLEDER"; + internal const string DAGLIG_LEDER = "DAGLIG LEDER"; + internal const string CENTERLEDER = "CENTERLEDER"; + internal const string INTERESSENTSKABSLEDELSE = "INTERESSENTSKABSLEDELSE"; + internal const string ANSVARLIG_LEDELSE = "ANSVARLIG LEDELSE"; + internal const string TURIST_OG_ERHVERVSCHEF = "TURIST- OG ERHVERVSCHEF"; + internal const string BUTIKSBESTYRER = "BUTIKSBESTYRER"; + internal const string LEDER = "LEDER"; + internal const string ANSVARLIG_LEDER = "ANSVARLIG LEDER"; + internal const string LEDELSESUDVALG = "LEDELSESUDVALG"; + internal const string MANAGER = "MANAGER"; + internal const string PROJEKTCHEF = "PROJEKTCHEF"; + internal const string UDVALG = "UDVALG"; + internal const string KASSERER = "KASSERER"; + internal const string GENERALAGENT = "GENERALAGENT"; + internal const string KOMMANDITISTREPRÆSENTANT = "KOMMANDITISTREPRÆSENTANT"; + internal const string FORRETNINGSBESTYRELSE = "FORRETNINGSBESTYRELSE"; + internal const string ANSVARLIG_DELTAGER = "ANSVARLIG DELTAGER"; + internal const string FORRETNINGSUDVALG = "FORRETNINGSUDVALG"; + internal const string KOMMITTERET = "KOMMITTERET"; + internal const string STYREGRUPPE = "STYREGRUPPE"; + internal const string PRÆSIDIET = "PRÆSIDIET"; + internal const string STYRELSE = "STYRELSE"; + internal const string REPRÆSENTANTSKAB = "REPRÆSENTANTSKAB"; + internal const string REKONSTRUKTØRER = "REKONSTRUKTØRER"; + internal const string REVISIONSVIRKSOMHEDLEDELSE = "REVISIONSVIRKSOMHEDLEDELSE"; + internal const string ADMINISTRATOR = "ADMINISTRATOR"; + internal const string ADMINISTRATIONSORGAN = "ADMINISTRATIONSORGAN"; + internal const string ADMINISTRATIONSSELSKAB = "ADMINISTRATIONSSELSKAB"; + internal const string ADMINISTRATION = "ADMINISTRATION"; + internal const string SELSKABSADMINISTRATION = "SELSKABSADMINISTRATION"; +} \ No newline at end of file diff --git a/DanishCvr/Consts/EnhedsType.cs b/DanishCvr/Consts/EnhedsType.cs new file mode 100644 index 0000000..2c8426b --- /dev/null +++ b/DanishCvr/Consts/EnhedsType.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Consts; + +/// +/// Enheds Type. +/// +internal class EnhedsType +{ + internal const string ANDEN_DELTAGER = "ANDEN DELTAGER"; + internal const string PERSON = "PERSON"; + internal const string PRODUKTIONSENHED = "PRODUKTIONSENHED"; + internal const string VIRKSOMHED = "VIRKSOMHED"; +} \ No newline at end of file diff --git a/DanishCvr/Consts/HovedTyper.cs b/DanishCvr/Consts/HovedTyper.cs new file mode 100644 index 0000000..7918eb2 --- /dev/null +++ b/DanishCvr/Consts/HovedTyper.cs @@ -0,0 +1,24 @@ +namespace DanishCvr.Consts; + +/// +/// Deltager Attribute Names. +/// +internal class HovedTyper +{ + internal const string REGISTER = "REGISTER"; + internal const string STIFTERE = "STIFTERE"; + internal const string LEDELSESORGAN = "LEDELSESORGAN"; + internal const string REVISION = "REVISION"; + internal const string HOVEDSELSKAB = "HOVEDSELSKAB"; + internal const string TEGNINGSBERETTIGEDE = "TEGNINGSBERETTIGEDE"; + internal const string HVIDVASK = "HVIDVASK"; + internal const string FULDT_ANSVARLIG_DELTAGERE = "FULDT_ANSVARLIG_DELTAGERE"; + internal const string SÆRLIGE_FINANSIELLE_DELTAGERE = "SÆRLIGE_FINANSIELLE_DELTAGERE"; + internal const string BÆREDYGTIGHEDSREVISION = "BÆREDYGTIGHEDSREVISION"; + internal const string REPRÆSENTANTER = "REPRÆSENTANTER"; + + // No results. + //internal const string FORSIKRINGER = "FORSIKRINGER"; + //internal const string FUSION = "FUSION"; + //internal const string SPALTNING = "SPALTNING"; +} \ No newline at end of file diff --git a/DanishCvr/DanishCvr.csproj b/DanishCvr/DanishCvr.csproj new file mode 100644 index 0000000..408021f --- /dev/null +++ b/DanishCvr/DanishCvr.csproj @@ -0,0 +1,69 @@ + + + net10.0 + NU5104 + 1.0.0.0 + 1.0.0.0 + 1.0.0.0 + AnyCPU + Debug;Release + latest + en-US + LICENSE + true + + true + true + true + true + Michael Vivet + Michael Vivet + Michael Vivet + DanishCvr + Look up Danish companies, production units and persons in the Central Business Register (CVR). + Search and retrieve company, production unit, person and relation information from the Danish Central Business Register (CVR), including status, business type, industry, employment, addresses and ownership. Includes a batch service for exporting the full register. + + - Initial Release + + Github + master + https://github.com/Vivet/DanishCvr.git + true + true + snupkg + true + $(Version) + cvr denmark danish company companies business registry virk datafordeler production-unit person industry branchekode kyc lookup elasticsearch + https://github.com/Vivet/DanishCvr + LICENSE + icon.png + README.md + + + + True + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DanishCvr/DanishCvrBatchService.cs b/DanishCvr/DanishCvrBatchService.cs new file mode 100644 index 0000000..3c39ca2 --- /dev/null +++ b/DanishCvr/DanishCvrBatchService.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using DanishCvr.Consts; +using DanishCvr.Interfaces; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using DanishCvr.Models.Debug; +using DanishCvr.Models; +using DanishCvr.Responses.Models; +using DanishCvr.Requests.Models; + +namespace DanishCvr; + +/// +/// Danish Cvr Batch Service. +/// +public class DanishCvrBatchService : IDanishCvrBatchService +{ + private ILogger Logger { get; } + private IDanishCvrService DanishCvrService { get; } + + /// + /// Constructor. + /// + /// The . + /// The . + public DanishCvrBatchService(ILogger logger, IDanishCvrService danishCvrService) + { + this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.DanishCvrService = danishCvrService ?? throw new ArgumentNullException(nameof(danishCvrService)); + } + + /// + public virtual async Task SearchAllAsync(Action> postAction, int maxInterations, int skipInterations, int maxParallelism, CancellationToken cancellationToken = default) + { + if (postAction == null) + throw new ArgumentNullException(nameof(postAction)); + + const int RETRIES = 3; + + var combinations = this.GetCombinations(maxInterations, skipInterations); + + var debugInformation = new DebugInformation(); + var parallelOptions = new ParallelOptions + { + MaxDegreeOfParallelism = maxParallelism, + CancellationToken = cancellationToken + }; + + await Parallel.ForEachAsync(combinations, parallelOptions, async (combination, innerCancellationToken) => + { + var retries = 0; + var success = false; + + while (!success) + { + try + { + var response = await this.DanishCvrService + .GetCompaniesAsync(combination, new Paging { Count = 2500 }, innerCancellationToken); + + var results = response.Results + .ToArray(); + + if (results.Length >= 2500) + { + this.Logger + .LogWarning($"Combination: '{combination}' returned 2500 or more results."); + } + + this.UpdateDebugInformation(results, ref debugInformation); + + postAction(results); + + retries = 0; + success = true; + } + catch (Exception ex) + { + retries++; + + if (retries == RETRIES) + { + this.Logger + .LogError(ex, $"Search: '{combination}*' FAILED after {retries} retries."); + + return; + } + } + } + }); + + return debugInformation; + } + + private List GetCombinations(int maxInterations, int skipInterations) + { + var combinations = new List(); + + for (var firstDigit = 1; firstDigit <= 9; firstDigit++) + { + for (var i = skipInterations; i < maxInterations; i++) + { + var combination = firstDigit + i.ToString("D3"); + + combinations + .Add(combination); + } + } + + return combinations; + } + private void UpdateDebugInformation(IEnumerable responses, ref DebugInformation debugInformation) + { + if (responses == null) + throw new ArgumentNullException(nameof(responses)); + + if (debugInformation == null) + throw new ArgumentNullException(nameof(debugInformation)); + + if (!Debugger.IsAttached) + { + return; + } + + var virksomheder = responses + .Select(x => JsonConvert.DeserializeObject(x.RawJson)) + .ToArray(); + + var debugAttributes = virksomheder + .SelectMany(x => x.Attributter + .Select(y => new DebugAttribute + { + Value = y.Type, + Count = 1, + SampleRegistrationNumbers = + [ + x.CvrNummer + ] + })); + + foreach (var debugAttribute in debugAttributes) + { + var attribute = debugInformation.Attributes + .FirstOrDefault(y => y.Value == debugAttribute.Value); + + if (attribute == null) + { + debugInformation.Attributes + .Add(debugAttribute); + } + else + { + attribute.Count++; + + if (attribute.SampleRegistrationNumbers.Count < 10) + { + foreach (var debugAttributeSampleRegistrationNumber in debugAttribute.SampleRegistrationNumbers) + { + attribute.SampleRegistrationNumbers + .Add(debugAttributeSampleRegistrationNumber); + } + } + } + } + + var debugHovedTypes = virksomheder + .SelectMany(x => x.DeltagerRelation + .SelectMany(y => y.Organisationer + .Select(z => + { + var debugHovedType = new DebugHovedType + { + Type = z.HovedType, + Count = 1 + }; + + var attributes = z.Attributter + .Where(a => a.Type == AttributTyper.FUNKTION) + .SelectMany(a => a.Vaerdier) + .DistinctBy(a => a.Vaerdi) + .Select(a => new DebugAttribute + { + Value = a.Vaerdi, + Count = 1, + SampleRegistrationNumbers = + [ + x.CvrNummer + ] + }); + + foreach (var debugAttribute in attributes) + { + debugHovedType.Attributes + .Add(debugAttribute); + } + + return debugHovedType; + }))); + + foreach (var debugHovedType in debugHovedTypes) + { + var hovedType = debugInformation.HovedTyper + .FirstOrDefault(y => y.Type == debugHovedType.Type); + + if (hovedType == null) + { + debugInformation.HovedTyper + .Add(debugHovedType); + } + else + { + hovedType.Count++; + + foreach (var debugAttribute in debugHovedType.Attributes) + { + var attribute = hovedType.Attributes + .FirstOrDefault(x => x.Value == debugAttribute.Value); + + if (attribute == null) + { + hovedType.Attributes + .Add(debugAttribute); + } + else + { + attribute.Count++; + + if (attribute.SampleRegistrationNumbers.Count < 10) + { + if (!attribute.SampleRegistrationNumbers.Any(x => debugAttribute.SampleRegistrationNumbers.Any(y => y == x))) + { + foreach (var debugAttributeSampleRegistrationNumber in debugAttribute.SampleRegistrationNumbers) + { + attribute.SampleRegistrationNumbers + .Add(debugAttributeSampleRegistrationNumber); + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/DanishCvr/DanishCvrOptions.cs b/DanishCvr/DanishCvrOptions.cs new file mode 100644 index 0000000..70218fa --- /dev/null +++ b/DanishCvr/DanishCvrOptions.cs @@ -0,0 +1,35 @@ +using System; + +namespace DanishCvr; + +/// +/// Danish Cvr Options. +/// +public class DanishCvrOptions +{ + /// + /// Section Name. + /// + public const string SECTION_NAME = "DanishCvr"; + + /// + /// Username. + /// + public virtual string Username { get; set; } + + /// + /// Password. + /// + public virtual string Password { get; set; } + + /// + /// Request Timeout. + /// + public virtual TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(30); + + /// + /// Include Raw Json. + /// When true, the raw json of each result is populated also when no debugger is attached. + /// + public virtual bool IncludeRawJson { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/DanishCvrService.cs b/DanishCvr/DanishCvrService.cs new file mode 100644 index 0000000..9aac0a3 --- /dev/null +++ b/DanishCvr/DanishCvrService.cs @@ -0,0 +1,8857 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using DanishCvr.Consts; +using DanishCvr.Extensions; +using DanishCvr.Interfaces; +using DanishCvr.Responses; +using DanishCvr.Helpers; +using Microsoft.Extensions.Logging; +using Nest; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using ExistsQuery = Nest.ExistsQuery; +using Industries = DanishCvr.Responses.Models.Industries; +using MergersAndSplits = DanishCvr.Responses.Models.MergersAndSplits; +using Name = DanishCvr.Responses.Models.Name; +using Names = DanishCvr.Responses.Models.Names; +using Period = DanishCvr.Types.Period; +using SearchPersonsRequest = DanishCvr.Requests.SearchPersonsRequest; +using Status = DanishCvr.Responses.Models.Status; +using DanishCvr.Models; +using DanishCvr.Requests; +using DanishCvr.Responses.Models; +using DanishCvr.Responses.Models.Enums; +using DanishCvr.Requests.Models; +using DanishCvr.Requests.Models.Enums; + +namespace DanishCvr; + +/// +public class DanishCvrService : IDanishCvrService +{ + private const string INDEX_CVR_PERMANENT = "cvr-permanent"; + private const string INDEX_REGISTRERINGS_TEKSTER = "registreringstekster"; + + private static readonly JsonSerializerSettings jsonSerializerSettings = new() + { + NullValueHandling = NullValueHandling.Ignore, + Converters = + { + new StringEnumConverter() + } + }; + + private static readonly IEnumerable industryResults; + private static readonly IEnumerable statusResults = new List + { + "Fremtid", + "Normal", + "Ophørt", + "Opløst", + "Opløst efter erklæring", + "Opløst efter frivillig likvidation", + "Opløst efter fusion", + "Opløst efter grænseoverskridende fusion", + "Opløst efter grænseoverskridende hjemstedsflytning", + "Opløst efter konkurs", + "Opløst efter spaltning", + "Slettet", + "Tvangsopløst", + "Under frivillig likvidation", + "Under konkurs", + "Under reassumering", + "Under rekonstruktion", + "Under tvangsopløsning" + }; + + private static readonly NumberFormatInfo numberFormatInfo = new() + { + CurrencyDecimalSeparator = "." + }; + + private readonly ILogger logger; + private readonly ElasticClient elasticClient; + private readonly DanishCvrOptions options; + + static DanishCvrService() + { + DanishCvrService.industryResults = typeof(DanishCvrService).Assembly.GetJsonResource>("DanishCvr.Resources.branchekoder.json"); + } + + /// + /// Constructor. + /// + /// The . + /// The . + /// The . + public DanishCvrService(ILogger logger, ElasticClient elasticClient, DanishCvrOptions options) + { + this.options = options ?? throw new ArgumentNullException(nameof(options)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.elasticClient = elasticClient ?? throw new ArgumentNullException(nameof(elasticClient)); + } + + /// + public virtual async Task GetCompanyStatusesAsync(CancellationToken cancellationToken = default) + { + await Task.CompletedTask; + + return new StatusesResponse + { + Results = DanishCvrService.statusResults + .Select(x => new StatusResult + { + Text = x.ToStringPretty() + }) + .OrderBy(x => x.Text), + TotalResults = DanishCvrService.statusResults.Count() + }; + } + + /// + public virtual async Task GetCompanyBusinessTypesAsync(CancellationToken cancellationToken = default) + { + const string AGGREGATE_NAME = "distinct_field"; + const string AGGREGATE_INCLUDED_NAME = "included_fields"; + + var includeFields = new List + { + new("Vrvirksomhed.virksomhedsform.virksomhedsformkode"), + new("Vrvirksomhed.virksomhedsform.kortBeskrivelse"), + new("Vrvirksomhed.virksomhedsform.langBeskrivelse") + }; + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(0) + .Aggregations(y => y + .Terms(AGGREGATE_NAME, z => z + .Field("Vrvirksomhed.virksomhedsform.virksomhedsformkode") + .Size(2500) + .Aggregations(a => a + .TopHits(AGGREGATE_INCLUDED_NAME, b => b + .Size(1) + .Source(c => c + .Includes(d => d + .Fields(includeFields))))))) + .Sort(y => y + .Ascending("Vrvirksomhed.virksomhedsform.virksomhedsformkode")) + , + cancellationToken); + + var termsAggregation = response.Aggregations + .Terms(AGGREGATE_NAME); + + var results = termsAggregation?.Buckets + .Select(x => + { + var code = x.Key.ToString(); + + var source = x + .TopHits(AGGREGATE_INCLUDED_NAME) + .Hits() + .Select(y => y.Source) + .FirstOrDefault(); + + if (source?["Vrvirksomhed"]?["virksomhedsform"] is JArray jArray && jArray.Any()) + { + var matchingForm = jArray + .FirstOrDefault(y => y?["virksomhedsformkode"]?.ToString() == code); + + var abbreviation = matchingForm?["kortBeskrivelse"]?.ToString(); + var description = matchingForm?["langBeskrivelse"]?.ToString(); + + return new BusinessTypeResult + { + Code = code, + Abbreviation = abbreviation, + Description = description + }; + } + + return null; + }) + .Where(x => x != null) + .OrderBy(x => int.Parse(x.Code)) + .ToList(); + + return new BusinessTypesResponse + { + Results = results ?? [], + TotalResults = results?.Count ?? 0 + }; + } + + /// + public virtual async Task GetCompanyIndustriesAsync(CancellationToken cancellationToken = default) + { + await Task.CompletedTask; + + return new IndustriesResponse + { + Results = DanishCvrService.industryResults + .OrderBy(x => int.Parse(x.Code)), + TotalResults = DanishCvrService.industryResults.Count() + }; + } + + /// + public virtual async Task GetCompanyAsync(string registrationNumber, CancellationToken cancellationToken = default) + { + if (registrationNumber == null) + throw new ArgumentNullException(nameof(registrationNumber)); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(1) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("Vrvirksomhed.cvrNummer") + .Value(registrationNumber))))), + cancellationToken); + + var result = response.Hits + .Select(x => this.MapCompanyResult(x.Source.VrVirksomhed)) + .FirstOrDefault(); + + return new CompanyResponse + { + Result = result + }; + } + + /// + public virtual async Task GetCompanyByExternalIdAsync(string externalId, CancellationToken cancellationToken = default) + { + if (externalId == null) + throw new ArgumentNullException(nameof(externalId)); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(1) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("Vrvirksomhed.enhedsNummer") + .Value(externalId))))), + cancellationToken); + + var result = response.Hits + .Select(x => this.MapCompanyResult(x.Source.VrVirksomhed)) + .FirstOrDefault(); + + return new CompanyResponse + { + Result = result + }; + } + + /// + public virtual async Task GetCompaniesAsync(IEnumerable registrationNumbers, CancellationToken cancellationToken = default) + { + if (registrationNumbers == null) + throw new ArgumentNullException(nameof(registrationNumbers)); + + var terms = registrationNumbers + .ToArray(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(terms.Length) + .Query(y => y + .Terms(z => z + .Field("Vrvirksomhed.cvrNummer") + .Terms(terms))), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapCompanySearchResult(x.Source.VrVirksomhed)); + + return new CompaniesSearchResponse + { + Results = results + }; + } + + /// + public virtual async Task GetCompaniesAsync(string registrationNumberPrefix, Paging paging = null, CancellationToken cancellationToken = default) + { + if (registrationNumberPrefix == null) + throw new ArgumentNullException(nameof(registrationNumberPrefix)); + + paging ??= new Paging(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(paging.Count) + .Skip(paging.Skip) + .Query(y => y + .Bool(z => z.Must(a => a + .Wildcard(b => b + .Field("Vrvirksomhed.cvrNummer") + .Value($"{registrationNumberPrefix}*"))))) + .Sort(y => y + .Ascending("Vrvirksomhed.cvrNummer")), + cancellationToken); + + var results = response.Hits + .Select(x => + { + try + { + return this.MapCompanyResult(x.Source.VrVirksomhed); + } + catch (Exception ex) + { + this.logger + .LogWarning(ex, $"Registration Number: {x.Source.VrVirksomhed.CvrNummer}: {ex.Message}"); + + return null; + } + }) + .Where(x => x != null) + .ToArray(); + + return new CompaniesResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task AutoCompleteCompaniesAsync(AutoCompleteCompaniesRequest request, CancellationToken cancellationToken = default) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var musts = new[] + { + this.GetCompaniesAutoCompleteQueryName(request), + this.GetCompaniesAutoCompleteIsActive(request) + } + .Where(x => x != null) + .SelectMany(x => x) + .ToArray(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Source(y => y + .Includes(z => z + .Field("Vrvirksomhed.cvrNummer") + .Field("Vrvirksomhed.navne") + .Field("Vrvirksomhed.virksomhedsform") + .Field("Vrvirksomhed.beliggenhedsadresse") + .Field("Vrvirksomhed.livsforloeb") + .Field("Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn") + .Field("Vrvirksomhed.virksomhedMetadata.nyesteBeliggenhedsadresse") + .Field("Vrvirksomhed.virksomhedMetadata.nyesteVirksomhedsform"))) + .Size(10) + .Query(y => y + .Bool(z => z + .Must(musts))) + .Sort(y => y + .Ascending(new Field("Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn_sort"))), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapCompanyAutoCompleteResult(x.Source.VrVirksomhed)) + .ToArray(); + + return new CompaniesAutoCompleteResponse + { + Results = results + }; + } + + /// + public virtual async Task SearchCompaniesAsync(SearchCompaniesRequest request, CancellationToken cancellationToken = default) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var musts = new[] + { + this.GetCompaniesSearchQueryName(request), + this.GetCompaniesSearchQueryBusinessCodes(request), + this.GetCompaniesSearchQueryZipCodes(request), + this.GetCompaniesSearchQueryIndustryCodes(request), + this.GetCompaniesSearchQueryStatus(request), + this.GetCompaniesSearchQueryEmployeesFrom(request), + this.GetCompaniesSearchQueryEmployeesTo(request), + this.GetCompaniesSearchQueryFoundedAtFrom(request), + this.GetCompaniesSearchQueryFoundedAtTo(request), + this.GetCompaniesSearchQueryDissolvedAtFrom(request), + this.GetCompaniesSearchQueryDissolvedAtTo(request), + this.GetCompaniesSearchQueryIsActive(request), + this.GetCompaniesSearchQueryIsProtectedFromAdvertisment(request) + } + .Where(x => x != null) + .SelectMany(x => x) + .ToArray(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(request.Paging.Count) + .Skip(request.Paging.Skip) + .Query(y => y + .Bool(z => z + .Must(musts))) + .Sort(y => + { + var field = request.Sorting.By switch + { + CompanySortBy.Relevance => null, + CompanySortBy.Name => new Field("Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn_sort"), + CompanySortBy.NumberOfEmployees => new Field("Vrvirksomhed.virksomhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte"), + CompanySortBy.FoundedAt => new Field("Vrvirksomhed.virksomhedMetadata.stiftelsesDato"), + CompanySortBy.DissolvedAt => new Field("Vrvirksomhed.livsforloeb.periode.gyldigTil"), + _ => null + }; + + if (field == null) + { + return null; + } + + return request.Sorting.Direction == SortDirection.Ascending + ? y.Ascending(field) + : y.Descending(field); + }), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapCompanySearchResult(x.Source.VrVirksomhed)) + .ToArray(); + + return new CompaniesSearchResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task GetCompanyRegistrationTextsAsync(string registrationNumber, Paging paging = null, CancellationToken cancellationToken = default) + { + if (registrationNumber == null) + throw new ArgumentNullException(nameof(registrationNumber)); + + paging ??= new Paging(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_REGISTRERINGS_TEKSTER) + .Size(paging.Count) + .Skip(paging.Skip) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("cvrNummer") + .Value(registrationNumber))))) + .Sort(y => y + .Descending("registreringTidsstempel")), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapRegistrationTextResult(x.Source)); + + return new RegistrationTextsResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task GetProductionUnitAsync(string productionUnitid, CancellationToken cancellationToken = default) + { + if (productionUnitid == null) + throw new ArgumentNullException(nameof(productionUnitid)); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(1) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("VrproduktionsEnhed.pNummer") + .Value(productionUnitid))))), + cancellationToken); + + var result = response.Hits + .Select(x => this.MapProductionUnitResult(x.Source.VrProduktionsEnhed)) + .FirstOrDefault(); + + return new ProductionUnitResponse + { + Result = result + }; + } + + /// + public virtual async Task GetProductionUnitsAsync(string registrationNumber, bool includeHistoric = false, Paging paging = null, CancellationToken cancellationToken = default) + { + if (registrationNumber == null) + throw new ArgumentNullException(nameof(registrationNumber)); + + paging ??= new Paging(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(paging.Count) + .Skip(paging.Skip) + .Query(y => y + .Term(z => z + .Field("VrproduktionsEnhed.produktionsEnhedMetadata.nyesteCvrNummerRelation") + .Value(registrationNumber))) + .Sort(y => y + .Ascending("VrproduktionsEnhed.produktionsEnhedMetadata.nyesteNavn.navn_sort")), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapProductionUnitResult(x.Source.VrProduktionsEnhed)); + + return new ProductionUnitsResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task SearchProductionUnitsAsync(SearchProductionUnitsRequest request, CancellationToken cancellationToken = default) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var musts = new[] + { + this.GetProductionUnitsSearchQueryName(request), + this.GetProductionUnitsSearchQueryZipCodes(request), + this.GetProductionUnitsSearchQueryIndustryCodes(request), + this.GetProductionUnitsSearchQueryStatus(request), + this.GetProductionUnitsSearchQueryEmployeesFrom(request), + this.GetProductionUnitsSearchQueryEmployeesTo(request), + this.GetProductionUnitsSearchQueryIsActive(request) + } + .Where(x => x != null) + .SelectMany(x => x) + .ToArray(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(request.Paging.Count) + .Skip(request.Paging.Skip) + .Query(y => y + .Bool(z => z + .Must(musts))) + .Sort(y => + { + var field = request.Sorting.By switch + { + ProductionUnitSortBy.Relevance => null, + ProductionUnitSortBy.Name => new Field("VrproduktionsEnhed.produktionsEnhedMetadata.nyesteNavn.navn_sort"), + ProductionUnitSortBy.NumberOfEmployees => new Field("VrproduktionsEnhed.produktionsEnhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte"), + _ => null + }; + + if (field == null) + { + return null; + } + + return request.Sorting.Direction == SortDirection.Ascending + ? y.Ascending(field) + : y.Descending(field); + }), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapProductionUnitSearchResult(x.Source.VrProduktionsEnhed)); + + return new ProductionUnitsSearchResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task GetPersonAsync(string externalId, CancellationToken cancellationToken = default) + { + if (externalId == null) + throw new ArgumentNullException(nameof(externalId)); + + var responsePerson = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(1) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("Vrdeltagerperson.enhedsNummer") + .Value(externalId))))), + cancellationToken); + + var resultPerson = responsePerson.Hits + .Select(x => this.MapPersonResult(x.Source.VrDeltagerPerson)) + .FirstOrDefault(); + + return new PersonResponse + { + Result = resultPerson + }; + } + + /// + public virtual async Task AutoCompletePersonsAsync(AutoCompletePersonsRequest request, CancellationToken cancellationToken = default) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Name == null) + { + return null; + } + + var nameQuery = this.GetPersonsAutoCompleteQueryName(request); + + if (nameQuery == null) + { + return null; + } + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Source(y => y + .Includes(z => z + .Field("Vrdeltagerperson.enhedsNummer") + .Field("Vrdeltagerperson.navne.navn") + .Field("Vrdeltagerperson.stilling") + .Field("Vrdeltagerperson.beliggenhedsadresse.postnummer") + .Field("Vrdeltagerperson.beliggenhedsadresse.postdistrikt"))) + .Size(25) + .Query(y => y + .Bool(z => z + .Must(nameQuery))) + .Sort(y => y + .Ascending(new Field("Vrdeltagerperson.navne.navn_sort"))), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapPersonAutoCompleteResult(x.Source.VrDeltagerPerson)); + + return new PersonsAutoCompleteResponse + { + Results = results + }; + } + + /// + public virtual async Task SearchPersonsAsync(SearchPersonsRequest request, CancellationToken cancellationToken = default) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var musts = new[] + { + this.GetPersonsSearchQueryName(request), + this.GetPersonsSearchQueryZipCodes(request) + } + .Where(x => x != null) + .SelectMany(x => x) + .ToArray(); + + var response = await this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Source(y => y + .Includes(z => z + .Field("Vrdeltagerperson.enhedsNummer") + .Field("Vrdeltagerperson.navne.navn") + .Field("Vrdeltagerperson.beliggenhedsadresse") + .Field("Vrdeltagerperson.telefonNummer") + .Field("Vrdeltagerperson.telefaxNummer") + .Field("Vrdeltagerperson.elektroniskPost") + .Field("Vrdeltagerperson.stilling") + .Field("Vrdeltagerperson.enhedstype") + .Field("Vrdeltagerperson.sidstOpdateret"))) + .Size(request.Paging.Count) + .Skip(request.Paging.Skip) + .Query(y => y + .Bool(z => z + .Must(musts))) + .Sort(y => + { + var field = request.Sorting.By switch + { + PersonSortBy.Name => new Field("Vrdeltagerperson.navne.navn_sort"), + _ => null + }; + + if (field == null) + { + return null; + } + + return request.Sorting.Direction == SortDirection.Ascending + ? y.Ascending(field) + : y.Descending(field); + }), + cancellationToken); + + var results = response.Hits + .Select(x => this.MapPersonSearchResult(x.Source.VrDeltagerPerson)); + + return new PersonsSearchResponse + { + Results = results, + TotalResults = response.Total + }; + } + + /// + public virtual async Task GetRelationsAsync(string externalId, bool includeHistoric = false, Paging paging = null, CancellationToken cancellationToken = default) + { + if (externalId == null) + throw new ArgumentNullException(nameof(externalId)); + + paging ??= new Paging(); + + var responsePersonTask = this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Source(y => y + .Includes(z => z + .Field("Vrdeltagerperson.virksomhedSummariskRelation"))) + .Size(1) + .Query(y => y + .Bool(z => z + .Must(a => a + .Term(b => b + .Field("Vrdeltagerperson.enhedsNummer") + .Value(externalId))))), + cancellationToken); + + var musts = new List + { + new TermQuery + { + Field = "Vrvirksomhed.deltagerRelation.deltager.enhedsNummer", + Value = externalId + } + }; + + if (!includeHistoric) + { + musts + .Add(new BoolQuery + { + MustNot = + [ + new ExistsQuery + { + Field = "Vrvirksomhed.livsforloeb.periode.gyldigTil" + } + ] + }); + + musts + .Add(new NestedQuery + { + Path = "Vrvirksomhed.deltagerRelation", + Query = new BoolQuery + { + Must = + [ + new TermQuery + { + Field = "Vrvirksomhed.deltagerRelation.deltager.enhedsNummer", + Value = externalId + }, + new NestedQuery + { + Path = "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier", + Query = new BoolQuery + { + MustNot = + [ + new ExistsQuery + { + Field = "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.periode.gyldigTil" + } + ] + } + } + ] + } + }); + } + + var responseCompaniesTask = this.elasticClient + .SearchAsync(x => x + .Index(INDEX_CVR_PERMANENT) + .Size(paging.Count) + .Skip(paging.Skip) + .Query(y => y + .Bool(z => z + .Must(musts.ToArray()))) + .Sort(y => y + .Ascending("Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn_sort")), + cancellationToken); + + var responsePerson = await responsePersonTask; + var responseCompanies = await responseCompaniesTask; + + if (responsePerson.Hits.Any()) + { + var resultPerson = responsePerson.Hits + .Select(x => this.MapRelationResult(x.Source.VrDeltagerPerson, includeHistoric)) + .FirstOrDefault(); + + if (resultPerson != null) + { + var totalResults = resultPerson.Companies.Count(); + + resultPerson.Companies = resultPerson.Companies + .OrderBy(x => x.Name.Value) + .Skip(paging.Skip) + .Take(paging.Count); + + return new RelationsResponse + { + Result = resultPerson, + TotalResults = totalResults + }; + } + } + + var virksomheder = responseCompanies.Hits + .Select(x => x.Source.VrVirksomhed) + .ToArray(); + + var resultCompany = this.MapRelationResult(virksomheder, externalId, includeHistoric); + + if (resultCompany != null) + { + return new RelationsResponse + { + Result = resultCompany, + TotalResults = responseCompanies.Total + }; + } + + return null; + } + + private QueryContainer[] GetCompaniesAutoCompleteQueryName(AutoCompleteCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var queryName = this.GetCompaniesSearchQueryName(new SearchCompaniesRequest + { + Criteria = + { + Names = new NamesWithAlternative + { + Name = request.Names.Name, + IncludeAlternativeNames = request.Names.IncludeAlternativeNames, + IncludeHistoricNames = request.Names.IncludeHistoricNames + } + } + }); + + return queryName; + } + private QueryContainer[] GetCompaniesAutoCompleteIsActive(AutoCompleteCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var queryIsActive = this.GetCompaniesSearchQueryIsActive(new SearchCompaniesRequest + { + Criteria = + { + IsActive = request.IsActive + } + }); + + return queryIsActive; + } + private QueryContainer[] GetCompaniesSearchQueryName(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: The search is based on tokenized text, why searches will not always return results and why the search isn't working similar to an SQL like '{text}%'. + + if (request.Criteria.Names.Name == null) + { + return null; + } + + var shouldContainers = new List(); + + var nameField = request.Criteria.Names.IncludeHistoricNames + ? "Vrvirksomhed.navne.navn" + : "Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn"; + + var alternativeNameField = request.Criteria.Names.IncludeHistoricNames + ? "Vrvirksomhed.binavne.navn" + : "Vrvirksomhed.virksomhedMetadata.nyesteBinavne"; + + request.Criteria.Names.Name = request.Criteria.Names.Name.Trim(); + + var lastIndexOfSpace = request.Criteria.Names.Name + .LastIndexOf(' '); + + if (lastIndexOfSpace > -1) + { + var partOne = request.Criteria.Names.Name[..lastIndexOfSpace]; + var partTwo = request.Criteria.Names.Name[lastIndexOfSpace..]; + + shouldContainers + .Add(new BoolQuery + { + Must = + [ + new MatchPhraseQuery + { + Field = nameField, + Query = partOne + } + ], + Should = new List + { + new MatchPhraseQuery + { + Field = nameField, + Query = partTwo, + Boost = 4.0 + }, + new MatchPhrasePrefixQuery + { + Field = nameField, + Query = partTwo, + Boost = 2.0 + } + }, + MinimumShouldMatch = 1 + }); + + if (request.Criteria.Names.IncludeAlternativeNames) + { + shouldContainers + .Add(new BoolQuery + { + Must = + [ + new MatchPhraseQuery + { + Field = alternativeNameField, + Query = partOne + } + ], + Should = new List + { + new MatchPhraseQuery + { + Field = alternativeNameField, + Query = partTwo, + Boost = 4.0 + }, + new MatchPhrasePrefixQuery + { + Field = alternativeNameField, + Query = partTwo, + Boost = 2.0 + } + }, + MinimumShouldMatch = 1 + }); + } + } + else + { + shouldContainers + .Add(new MatchPhrasePrefixQuery + { + Field = nameField, + Query = request.Criteria.Names.Name, + Boost = 2.0 + }); + + shouldContainers + .Add(new MatchPhrasePrefixQuery + { + Field = alternativeNameField, + Query = request.Criteria.Names.Name + }); + } + + return + [ + new BoolQuery + { + Should = shouldContainers, + MinimumShouldMatch = 1 + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryBusinessCodes(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.BusinessTypeCodes.Any()) + { + return null; + } + + return + [ + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteVirksomhedsform.virksomhedsformkode", + Terms = request.Criteria.BusinessTypeCodes + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryZipCodes(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.Within?.Location == null) + { + return null; + } + + var postnumre = PostalCodes.GetPostalCodesWithin(request.Criteria.Within); + + return + [ + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteBeliggenhedsadresse.postnummer", + Terms = postnumre + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryIndustryCodes(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.IndustryCodes.Any()) + { + return null; + } + + return + [ + new BoolQuery + { + Should = new List + { + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteHovedbranche.branchekode", + Terms = request.Criteria.IndustryCodes, + Boost = 2.0 + }, + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteBibranche1.branchekode", + Terms = request.Criteria.IndustryCodes + }, + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteBibranche2.branchekode", + Terms = request.Criteria.IndustryCodes + }, + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteBibranche3.branchekode", + Terms = request.Criteria.IndustryCodes + } + }, + MinimumShouldMatch = 1 + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryStatus(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: There are some casse where the data from cvr.dk is incorrect and the 'sammensatStatus' is different from the latest virksomhedsstatus. E.g. Cvr: 24244431 + + if (request.Criteria.Statuses == null || !request.Criteria.Statuses.Any()) + { + return null; + } + + var queryContainers = new List(); + + foreach (var status in request.Criteria.Statuses) + { + if (status.ToUpper() == "NORMAL") + { + queryContainers + .Add(new BoolQuery + { + Should = + [ + new MatchPhraseQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.sammensatStatus", + Query = status.Replace(" ", "") + }, + new MatchPhraseQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.sammensatStatus", + Query = "aktiv" + } + ], + MinimumShouldMatch = 1 + }); + } + else + { + queryContainers + .Add(new MatchPhraseQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.sammensatStatus", + Query = status.Replace(" ", "") + } + ); + } + } + + return + [ + new BoolQuery + { + Should = queryContainers, + MinimumShouldMatch = 1 + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryEmployeesFrom(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.NumberOfEmployees?.From == null) + { + return null; + } + + var queryContainers = new List + { + new ExistsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteErstMaanedsbeskaeftigelse" + }, + new NumericRangeQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte", + GreaterThanOrEqualTo = request.Criteria.NumberOfEmployees.From.Value + } + }; + + return queryContainers + .ToArray(); + } + private QueryContainer[] GetCompaniesSearchQueryEmployeesTo(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.NumberOfEmployees?.To == null) + { + return null; + } + + return + [ + new ExistsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteErstMaanedsbeskaeftigelse" + }, + new NumericRangeQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte", + LessThanOrEqualTo = request.Criteria.NumberOfEmployees.To.Value + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryFoundedAtFrom(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.FoundedAt?.From == null) + { + return null; + } + + return + [ + new DateRangeQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.stiftelsesDato", + GreaterThanOrEqualTo = request.Criteria.FoundedAt.From.Value.ToDateTime(new TimeOnly()) + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryFoundedAtTo(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.FoundedAt?.To == null) + { + return null; + } + + return + [ + new DateRangeQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.stiftelsesDato", + LessThanOrEqualTo = request.Criteria.FoundedAt.To.Value.ToDateTime(new TimeOnly()) + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryDissolvedAtFrom(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: There are some casse where the data from cvr.dk is incorrect, when a company has been re-opened or multiple livsforloeb entries exists + + if (request.Criteria.DissolvedAt?.From == null) + { + return null; + } + + return + [ + new DateRangeQuery + { + Field = "Vrvirksomhed.livsforloeb.periode.gyldigTil", + GreaterThanOrEqualTo = request.Criteria.DissolvedAt.From.Value.ToDateTime(new TimeOnly()) + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryDissolvedAtTo(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: There are some casse where the data from cvr.dk is incorrect, when a company has been re-opened or multiple livsforloeb entries exists + + if (request.Criteria.DissolvedAt?.To == null) + { + return null; + } + + return + [ + new DateRangeQuery + { + Field = "Vrvirksomhed.livsforloeb.periode.gyldigTil", + LessThanOrEqualTo = request.Criteria.DissolvedAt.To.Value.ToDateTime(new TimeOnly()) + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryIsProtectedFromAdvertisment(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.IsProtectedFromAdvertisment.HasValue) + { + return null; + } + + return + [ + new TermQuery + { + Field = "Vrvirksomhed.reklamebeskyttet", + Value = request.Criteria.IsProtectedFromAdvertisment.Value + } + ]; + } + private QueryContainer[] GetCompaniesSearchQueryIsActive(SearchCompaniesRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.IsActive.HasValue) + { + return null; + } + + if (request.Criteria.IsActive.Value) + { + return + [ + new NestedQuery + { + Path = "Vrvirksomhed.livsforloeb", + Query = new BoolQuery + { + MustNot = + [ + new ExistsQuery + { + Field = "Vrvirksomhed.livsforloeb.periode.gyldigTil" + } + ] + } + }, + new BoolQuery + { + Must = + [ + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.sammensatStatus", + Terms = ["normal", "aktiv"] + } + ] + } + ]; + } + + return + [ + new BoolQuery + { + MustNot = + [ + new TermsQuery + { + Field = "Vrvirksomhed.virksomhedMetadata.sammensatStatus", + Terms = ["normal", "aktiv"] + } + ] + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryName(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: The search is based on tokenized text, why searches will not always return results and why the search isn't working similar to an SQL like '{text}%'. + + if (request.Criteria.Names.Name == null) + { + return null; + } + + var nameField = request.Criteria.Names.IncludeHistoricNames + ? "VrproduktionsEnhed.navne.navn" + : "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteNavn.navn"; + + request.Criteria.Names.Name = request.Criteria.Names.Name.Trim(); + + var lastIndexOfSpace = request.Criteria.Names.Name + .LastIndexOf(' '); + + if (lastIndexOfSpace > -1) + { + var partOne = request.Criteria.Names.Name[..lastIndexOfSpace]; + var partTwo = request.Criteria.Names.Name[lastIndexOfSpace..]; + + return + [ + new BoolQuery + { + Must = + [ + new MatchPhraseQuery + { + Field = nameField, + Query = partOne + } + ], + Should = new List + { + new MatchPhraseQuery + { + Field = nameField, + Query = partTwo, + Boost = 4.0 + }, + new MatchPhrasePrefixQuery + { + Field = nameField, + Query = partTwo, + Boost = 2.0 + } + }, + MinimumShouldMatch = 1 + } + ]; + } + + return + [ + new MatchPhrasePrefixQuery + { + Field = nameField, + Query = request.Criteria.Names.Name + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryZipCodes(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.Within?.Location == null) + { + return null; + } + + var postnumre = PostalCodes.GetPostalCodesWithin(request.Criteria.Within); + + return + [ + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteBeliggenhedsadresse.postnummer", + Terms = postnumre + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryIndustryCodes(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.IndustryCodes.Any()) + { + return null; + } + + return + [ + new BoolQuery + { + Should = new List + { + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteHovedbranche.branchekode", + Terms = request.Criteria.IndustryCodes, + Boost = 2.0 + }, + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteBibranche1.branchekode", + Terms = request.Criteria.IndustryCodes + }, + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteBibranche2.branchekode", + Terms = request.Criteria.IndustryCodes + }, + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteBibranche3.branchekode", + Terms = request.Criteria.IndustryCodes + } + }, + MinimumShouldMatch = 1 + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryStatus(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: There are some casse where the data from cvr.dk is incorrect and the 'sammensatStatus' equals 'Normal', while the company is Slettet. + + if (request.Criteria.Statuses == null || !request.Criteria.Statuses.Any()) + { + return null; + } + + var queryContainers = new List(); + + foreach (var status in request.Criteria.Statuses) + { + if (status.ToUpper() == "NORMAL") + { + queryContainers + .Add(new BoolQuery + { + Should = + [ + new MatchPhraseQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.sammensatStatus", + Query = status.Replace(" ", "") + }, + new MatchPhraseQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.sammensatStatus", + Query = "aktiv" + } + ], + MinimumShouldMatch = 1 + }); + } + else + { + queryContainers + .Add(new MatchPhraseQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.sammensatStatus", + Query = status.Replace(" ", "") + }); + } + } + + return + [ + new BoolQuery + { + Should = queryContainers, + MinimumShouldMatch = 1 + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryEmployeesFrom(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.NumberOfEmployees?.From == null) + { + return null; + } + + var queryContainers = new List + { + new ExistsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteErstMaanedsbeskaeftigelse" + }, + new NumericRangeQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte", + GreaterThanOrEqualTo = request.Criteria.NumberOfEmployees.From.Value + } + }; + + return queryContainers + .ToArray(); + } + private QueryContainer[] GetProductionUnitsSearchQueryEmployeesTo(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.NumberOfEmployees?.To == null) + { + return null; + } + + return + [ + new ExistsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteErstMaanedsbeskaeftigelse" + }, + new NumericRangeQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.nyesteErstMaanedsbeskaeftigelse.antalAnsatte", + LessThanOrEqualTo = request.Criteria.NumberOfEmployees.To.Value + } + ]; + } + private QueryContainer[] GetProductionUnitsSearchQueryIsActive(SearchProductionUnitsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (!request.Criteria.IsActive.HasValue) + { + return null; + } + + if (request.Criteria.IsActive.Value) + { + return + [ + new NestedQuery + { + Path = "VrproduktionsEnhed.livsforloeb", + Query = new BoolQuery + { + MustNot = + [ + new ExistsQuery + { + Field = "VrproduktionsEnhed.livsforloeb.periode.gyldigTil" + } + ] + } + }, + new BoolQuery + { + Must = + [ + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.sammensatStatus", + Terms = ["normal", "aktiv"] + } + ] + } + ]; + } + + return + [ + new BoolQuery + { + MustNot = + [ + new TermsQuery + { + Field = "VrproduktionsEnhed.produktionsEnhedMetadata.sammensatStatus", + Terms = ["normal", "aktiv"] + } + ] + } + ]; + } + private QueryContainer[] GetPersonsAutoCompleteQueryName(AutoCompletePersonsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + var queryName = this.GetPersonsSearchQueryName(new SearchPersonsRequest + { + Criteria = + { + Name = request.Name + } + }); + + return queryName; + } + private QueryContainer[] GetPersonsSearchQueryName(SearchPersonsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + // NOTE: The search is based on tokenized text, why searches will not always return results and why the search isn't working similar to an SQL like '{text}%'. + + if (request.Criteria.Name == null) + { + return null; + } + + const string NAME_FIELD = "Vrdeltagerperson.navne.navn"; + + request.Criteria.Name = request.Criteria.Name.Trim(); + + var lastIndexOfSpace = request.Criteria.Name + .LastIndexOf(' '); + + if (lastIndexOfSpace > -1) + { + var partOne = request.Criteria.Name[..lastIndexOfSpace]; + var partTwo = request.Criteria.Name[lastIndexOfSpace..]; + + return + [ + new BoolQuery + { + Must = + [ + new MatchPhraseQuery + { + Field = NAME_FIELD, + Query = partOne + } + ], + Should = new List + { + new MatchPhraseQuery + { + Field = NAME_FIELD, + Query = partTwo, + Boost = 4.0 + }, + new MatchPhrasePrefixQuery + { + Field = NAME_FIELD, + Query = partTwo, + Boost = 2.0 + } + }, + MinimumShouldMatch = 1 + } + ]; + } + + return + [ + new MatchPhrasePrefixQuery + { + Field = NAME_FIELD, + Query = request.Criteria.Name + } + ]; + } + private QueryContainer[] GetPersonsSearchQueryZipCodes(SearchPersonsRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + if (request.Criteria.Within?.Location == null) + { + return null; + } + + var postnumre = PostalCodes.GetPostalCodesWithin(request.Criteria.Within); + + return + [ + new TermsQuery + { + Field = "Vrdeltagerperson.deltagerpersonMetadata.nyesteBeliggenhedsadresse.postnummer", + Terms = postnumre + } + ]; + } + + private CompanyDebugResult MapCompanyResult(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var registrationNumber = this.GetRegistrationNumber(virksomhed); + var names = this.GetNames(virksomhed); + var alternativeNameses = this.GetAlternativeNameses(virksomhed); + var addresses = this.GetAddresseses(virksomhed); + var phoneNumbers = this.GetPhoneNumbers(virksomhed); + var faxNumbers = this.GetFaxNumbers(virksomhed); + var emailAddresses = this.GetEmailAddresses(virksomhed); + var websites = this.GetWebsites(virksomhed); + var purposes = this.GetPurposes(virksomhed); + var industries = this.GetIndustries(virksomhed); + var businessTypes = this.GetBusinessTypes(virksomhed); + var statuses = this.GetStatuses(virksomhed); + var employment = this.GetEmployment(virksomhed); + var registeredCapitals = this.GetRegisteredCapitals(virksomhed); + var financialYears = this.GetFinancialYears(virksomhed); + var antiMoneyLaundering = this.GetAntiMoneyLaundering(virksomhed); + var auditing = this.GetAuditing(virksomhed); + var authority = this.GetAuthority(virksomhed); + var governance = this.GetGovernance(virksomhed); + var ownership = this.GetOwnership(virksomhed); + var bilawses = this.GetBilawses(virksomhed); + var auditorRegistration = this.GetAuditorRegistration(virksomhed); + var productionUnits = this.GetProductionUnitses(virksomhed); + var foundedAt = this.GetFoundedAt(virksomhed); + var effectiveStartedAt = this.GetEffectiveStartedAt(virksomhed); + var dissolvedAt = this.GetDissolvedAt(virksomhed); + var commercialFundApprovedAt = this.GetCommercialFundApprovedAt(virksomhed); + var isProtectedFromAdvertisement = this.GetIsProtectedFromAdvertisement(virksomhed); + var entityType = this.GetEntityType(virksomhed); + var errors = this.GetErrors(virksomhed); + var externalId = this.GetExternalId(virksomhed); + var updateAt = this.GetUpdatedAt(virksomhed); + + var rawJson = this.GetDebugRawJson(virksomhed); + + return new CompanyDebugResult + { + Company = new CompanyResult + { + RegistrationNumber = registrationNumber, + Names = names, + AlternativeNames = alternativeNameses, + Addresses = addresses, + PhoneNumbers = phoneNumbers, + FaxNumbers = faxNumbers, + EmailAddresses = emailAddresses, + Websites = websites, + Purpose = purposes, + Industry = industries, + Type = businessTypes, + Status = statuses, + Employment = employment, + RegisteredCapital = registeredCapitals, + FinancialYear = financialYears, + AntiMoneyLaundering = antiMoneyLaundering, + Auditing = auditing, + Authority = authority, + Governance = governance, + Ownership = ownership, + Bilaws = bilawses, + AuditorRegistration = auditorRegistration, + ProductionUnits = productionUnits, + FoundedAt = foundedAt, + EffectiveStartedAt = effectiveStartedAt, + DissolvedAt = dissolvedAt, + CommercialFundApprovedAt = commercialFundApprovedAt, + IsProtectedFromAdvertisement = isProtectedFromAdvertisement, + EntityType = entityType, + Errors = errors, + ExternalId = externalId, + UpdatedAt = updateAt + }, + RawJson = rawJson + }; + } + private CompanySearchDebugResult MapCompanySearchResult(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var registrationNumber = this.GetRegistrationNumber(virksomhed); + var latestName = this.GetLatestName(virksomhed); + var address = this.GetAddress(virksomhed); + var phoneNumber = this.GetPhoneNumber(virksomhed.TelefonNummer); + var faxNumber = this.GetFaxNumber(virksomhed.TelefaxNummer); + var emailAddress = this.GetEmailAddress(virksomhed.ElektroniskPost); + var website = this.GetWebsite(virksomhed.Hjemmeside); + var latestPurpose = this.GetLatestPurpose(virksomhed); + var latestPrimaryIndustry = this.GetLatestPrimaryIndustry(virksomhed); + var latestBusinessType = this.GetLatestBusinessType(virksomhed); + var isPubliclyListed = this.GetIsPubliclyListed(virksomhed); + var isGovernmental = this.GetIsGovernmental(virksomhed); + var isSocialEconomic = this.GetIsSocialEconomic(virksomhed); + var isCertifiedAuditor = this.GetIsCertifiedAuditor(virksomhed); + var status = this.GetStatus(virksomhed); + var latestEmployees = this.GetLatestEmployees(virksomhed); + var isActive = this.GetStatusIsActive(virksomhed); + var foundedAt = this.GetFoundedAt(virksomhed); + var dissolvedAt = this.GetDissolvedAt(virksomhed); + var isProtectedFromAdvertisement = this.GetIsProtectedFromAdvertisement(virksomhed); + var entityType = this.GetEntityType(virksomhed); + var externalId = this.GetExternalId(virksomhed); + var updateAt = this.GetUpdatedAt(virksomhed); + + var rawJson = this.GetDebugRawJson(virksomhed); + + return new CompanySearchDebugResult + { + Company = new CompanySearchResult + { + RegistrationNumber = registrationNumber, + Name = latestName, + Address = address, + PhoneNumber = phoneNumber, + FaxNumber = faxNumber, + EmailAddress = emailAddress, + Website = website, + Purpose = latestPurpose, + Industry = latestPrimaryIndustry, + Type = latestBusinessType, + Status = status, + Employees = latestEmployees, + FoundedAt = foundedAt, + DissolvedAt = dissolvedAt, + IsProtectedFromAdvertisement = isProtectedFromAdvertisement, + IsPubliclyListed = isPubliclyListed, + IsGovernmental = isGovernmental, + IsSocialEconomic = isSocialEconomic, + IsCertifiedAuditor = isCertifiedAuditor, + IsActive = isActive, + EntityType = entityType, + ExternalId = externalId, + UpdatedAt = updateAt + }, + RawJson = rawJson + }; + } + private CompanyAutoCompleteResult MapCompanyAutoCompleteResult(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var registrationNumber = this.GetRegistrationNumber(virksomhed); + var latestName = this.GetLatestName(virksomhed); + var businessType = this.GetLatestBusinessType(virksomhed); + var cityName = this.GetCity(virksomhed); + var cityPostalCode = this.GetPostalCode(virksomhed); + var isActive = this.GetStatusIsActive(virksomhed); + + return new CompanyAutoCompleteResult + { + RegistrationNumber = registrationNumber, + LatestName = latestName.Value, + Match = + { + Name = latestName.Value, + NameType = "Latest" + }, + BusinessTypeAbbreviation = businessType.Abbreviation, + CityName = cityName, + CityPostalCode = cityPostalCode, + IsActive = isActive + }; + } + private RegistrationTextDebugResult MapRegistrationTextResult(RegistreringsTekst registreringsTekst) + { + if (registreringsTekst == null) + throw new ArgumentNullException(nameof(registreringsTekst)); + + var rawJson = this.GetDebugRawJson(registreringsTekst); + + return new RegistrationTextDebugResult + { + RegistrationText = new RegistrationTextResult + { + ExternalId = registreringsTekst.OffentliggoerelseId, + RegisteredAt = registreringsTekst.RegistreringTidsstempel, + PublishedAt = registreringsTekst.OffentliggoerelseTidsstempel, + RegistrationNumber = registreringsTekst.CvrNummer, + Name = registreringsTekst.HovedNavn, + Address = registreringsTekst.Adresse, + PostalCode = registreringsTekst.Postnummer, + Text = registreringsTekst.Tekst, + UpdatedAt = registreringsTekst.SidstOpdateret, + Statuses = registreringsTekst.VirksomhedsRegistreringStatusser + }, + RawJson = rawJson + }; + } + private ProductionUnitDebugResult MapProductionUnitResult(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var productionUnitNumber = this.GetProductionUnitNumber(produktionsEnhed); + var names = this.GetNames(produktionsEnhed); + var addresses = this.GetAddresseses(produktionsEnhed); + var phoneNumbers = this.GetPhoneNumbers(produktionsEnhed); + var faxNumbers = this.GetFaxNumbers(produktionsEnhed); + var emailAddresses = this.GetEmailAddresses(produktionsEnhed); + var industries = this.GetIndustries(produktionsEnhed); + var statuses = this.GetStatuses(produktionsEnhed); + var employeeses = this.GetEmployeeses(produktionsEnhed); + var companies = this.GetProductionUnitCompanieses(produktionsEnhed); + var isHeaduarters = this.GetIsHeaduarters(produktionsEnhed); + var isSupportingUnit = this.GetIsSupportingUnit(produktionsEnhed); + var isTemporary = this.GetIsTemporary(produktionsEnhed); + var hasConfidentiality = this.GetHasConfidentiality(produktionsEnhed); + var foundedAt = this.GetFoundedAt(produktionsEnhed); + var dissolvedAt = this.GetDissolvedAt(produktionsEnhed); + var entityType = this.GetEntityType(produktionsEnhed); + var errors = this.GetErrors(produktionsEnhed); + var isProtectedFromAdvertisement = this.GetIsProtectedFromAdvertisement(produktionsEnhed); + var updateAt = this.GetUpdatedAt(produktionsEnhed); + + var rawJson = this.GetDebugRawJson(produktionsEnhed); + + return new ProductionUnitDebugResult + { + ProductionUnit = new ProductionUnitResult + { + ProductionUnitNumber = productionUnitNumber, + Names = names, + Addresses = addresses, + PhoneNumbers = phoneNumbers, + FaxNumbers = faxNumbers, + EmailAddresses = emailAddresses, + Industry = industries, + Status = statuses, + Employees = employeeses, + Companies = companies, + IsHeaduarters = isHeaduarters, + IsSupportingUnit = isSupportingUnit, + IsTemporary = isTemporary, + HasConfidentiality = hasConfidentiality, + FoundedAt = foundedAt, + DissolvedAt = dissolvedAt, + EntityType = entityType, + Errors = errors, + IsProtectedFromAdvertisement = isProtectedFromAdvertisement, + UpdatedAt = updateAt + }, + RawJson = rawJson + }; + } + private ProductionUnitSearchDebugResult MapProductionUnitSearchResult(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var productionUnitNumber = this.GetProductionUnitNumber(produktionsEnhed); + var name = this.GetLatestName(produktionsEnhed); + var address = this.GetLatestAddress(produktionsEnhed); + var phoneNumber = this.GetPhoneNumber(produktionsEnhed.TelefonNummer); + var faxNumber = this.GetFaxNumber(produktionsEnhed.TelefaxNummer); + var emailAddress = this.GetEmailAddress(produktionsEnhed.ElektroniskPost); + var industry = this.GetLatestPrimaryIndustry(produktionsEnhed); + var statuses = this.GetStatuses(produktionsEnhed); + var employees = this.GetLatestEmployees(produktionsEnhed); + var foundedAt = this.GetFoundedAt(produktionsEnhed); + var dissolvedAt = this.GetDissolvedAt(produktionsEnhed); + var entityType = this.GetEntityType(produktionsEnhed); + var isProtectedFromAdvertisement = this.GetIsProtectedFromAdvertisement(produktionsEnhed); + var updateAt = this.GetUpdatedAt(produktionsEnhed); + + var rawJson = this.GetDebugRawJson(produktionsEnhed); + + return new ProductionUnitSearchDebugResult + { + ProductionUnit = new ProductionUnitSearchResult + { + ProductionUnitNumber = productionUnitNumber, + Name = name, + Address = address, + PhoneNumber = phoneNumber, + FaxNumber = faxNumber, + EmailAddress = emailAddress, + Industry = industry, + Status = statuses, + Employees = employees, + FoundedAt = foundedAt, + DissolvedAt = dissolvedAt, + EntityType = entityType, + IsProtectedFromAdvertisement = isProtectedFromAdvertisement, + UpdatedAt = updateAt + }, + RawJson = rawJson + }; + } + private PersonDebugResult MapPersonResult(VrDeltagerPerson deltager) + { + if (deltager == null) + throw new ArgumentNullException(nameof(deltager)); + + var externalId = this.GetExternalId(deltager); + var name = this.GetName(deltager); + var addresses = this.GetAddresseses(deltager); + var phoneNumbers = this.GetPhoneNumbers(deltager); + var faxNumbers = this.GetFaxNumbers(deltager); + var emailAddresses = this.GetEmailAddresses(deltager); + var entityType = this.GetEntityType(deltager); + var errors = this.GetErrors(deltager); + var updatedAt = this.GetUpdatedAt(deltager); + var title = this.GetTitle(deltager); + + var companies = deltager.VirksomhedSummariskRelation + .Select(x => + { + var registrationNumber = this.GetRegistrationNumber(x.Virksomhed); + var innerName = this.GetName(x.Virksomhed); + var innerExternalId = this.GetExternalId(x.Virksomhed); + var isActive = this.GetStatusIsActive(x.Virksomhed); + + var activeRoles = this.GetPersonActiveRoles(x); + + if (!activeRoles.Any()) + { + return null; + } + + return new PersonCompany + { + RegistrationNumber = registrationNumber, + Name = innerName, + ExternalId = innerExternalId, + IsActive = isActive, + ActiveRoles = activeRoles + }; + }) + .Where(x => x != null) + .Where(x => x.IsActive); + + var rawJson = this.GetDebugRawJson(deltager); + + return new PersonDebugResult + { + Person = new PersonResult + { + ExternalId = externalId, + Name = name, + Title = title, + Addresses = addresses, + PhoneNumbers = phoneNumbers, + FaxNumbers = faxNumbers, + EmailAddresses = emailAddresses, + EntityType = entityType, + Errors = errors, + UpdatedAt = updatedAt, + Companies = companies + }, + RawJson = rawJson + }; + } + private PersonAutoCompleteResult MapPersonAutoCompleteResult(VrDeltagerPerson deltager) + { + if (deltager == null) + throw new ArgumentNullException(nameof(deltager)); + + var externalId = this.GetExternalId(deltager); + var name = this.GetName(deltager); + var title = this.GetTitle(deltager); + var city = this.GetCity(deltager); + var postalCode = this.GetPostalCode(deltager); + + return new PersonAutoCompleteResult + { + ExternalId = externalId, + Name = name.Value, + Title = title, + City = city, + PostalCode = postalCode + }; + } + private PersonSearchDebugResult MapPersonSearchResult(VrDeltagerPerson deltager) + { + if (deltager == null) + throw new ArgumentNullException(nameof(deltager)); + + var externalId = this.GetExternalId(deltager); + var name = this.GetName(deltager); + var title = this.GetTitle(deltager); + var latestAddress = this.GetLatestAddress(deltager); + var phoneNumber = this.GetPhoneNumber(deltager.TelefonNummer); + var faxNumber = this.GetFaxNumber(deltager.TelefaxNummer); + var emailAddress = this.GetEmailAddress(deltager.ElektroniskPost); + var entityType = this.GetEntityType(deltager); + var updatedAt = this.GetUpdatedAt(deltager); + + var rawJson = this.GetDebugRawJson(deltager); + + return new PersonSearchDebugResult + { + Person = new PersonSearchResult + { + ExternalId = externalId, + Name = name, + Title = title, + Address = latestAddress, + PhoneNumber = phoneNumber, + FaxNumber = faxNumber, + EmailAddress = emailAddress, + EntityType = entityType, + UpdatedAt = updatedAt + }, + RawJson = rawJson + }; + } + private RelationDebugResult MapRelationResult(VrDeltagerPerson deltager, bool includeHistoric) + { + if (deltager == null) + throw new ArgumentNullException(nameof(deltager)); + + var companies = deltager.VirksomhedSummariskRelation + .Select(x => + { + var registrationNumber = this.GetRegistrationNumber(x.Virksomhed); + var innerName = this.GetName(x.Virksomhed); + var ínnerEntityType = this.GetEntityType(x.Virksomhed); + var innerExternalId = this.GetExternalId(x.Virksomhed); + var innerUpdatedAt = this.GetUpdatedAt(x.Virksomhed); + var foundedAt = this.GetFoundedAt(x.Virksomhed); + var dissolvedAt = this.GetDissolvedAt(x.Virksomhed); + var businessType = this.GetBusinessType(x.Virksomhed); + var isActive = this.GetStatusIsActive(x.Virksomhed); + var relationRoles = this.GetPersonRelationRoles(x); + var activeRoles = this.GetActiveRoles(relationRoles); + + if (includeHistoric || activeRoles.Any()) + { + return new RelationResult + { + RegistrationNumber = registrationNumber, + Name = innerName, + EntityType = ínnerEntityType, + ExternalId = innerExternalId, + UpdatedAt = innerUpdatedAt, + FoundedAt = foundedAt, + DissolvedAt = dissolvedAt, + Type = businessType, + IsActive = isActive, + Roles = + { + Founder = relationRoles.Founder, + LegalOwner = relationRoles.LegalOwner, + BeneficialOwner = relationRoles.BeneficialOwner, + Liquidator = relationRoles.Liquidator, + Auditors = relationRoles.Auditors, + Executives = relationRoles.Executives, + BoardMembers = relationRoles.BoardMembers, + Managers = relationRoles.Managers, + AuthorizedSignatories = relationRoles.AuthorizedSignatories, + AntiMoneyLaunderingAppointees = relationRoles.AntiMoneyLaunderingAppointees, + SpecialFinancialParticipants = relationRoles.SpecialFinancialParticipants, + LiableParticipants = relationRoles.LiableParticipants, + AssociationRepresentatives = relationRoles.AssociationRepresentatives, + CertifiedAuditors = relationRoles.CertifiedAuditors + }, + ActiveRoles = activeRoles + }; + } + + return null; + }) + .Where(x => x != null) + .Where(x => includeHistoric || x.IsActive); + + var rawJson = this.GetDebugRawJson(deltager); + + return new RelationDebugResult + { + Companies = companies, + RawJson = rawJson + }; + } + private RelationDebugResult MapRelationResult(VrVirksomhed[] virksomheder, string externalId, bool includeHistoric) + { + if (virksomheder == null) + throw new ArgumentNullException(nameof(virksomheder)); + + if (externalId == null) + throw new ArgumentNullException(nameof(externalId)); + + var companies = virksomheder + .Select(x => + { + var registrationNumber = this.GetRegistrationNumber(x); + var ínnerEntityType = this.GetEntityType(x); + var innerExternalId = this.GetExternalId(x); + var innerUpdatedAt = this.GetUpdatedAt(x); + var foundedAt = this.GetFoundedAt(x); + var dissolvedAt = this.GetDissolvedAt(x); + var innerName = this.GetLatestName(x); + var businessType = this.GetLatestBusinessType(x); + var isActive = this.GetStatusIsActive(x); + var relationRoles = this.GetCompanyRelationRoles(x, externalId); + var activeRoles = this.GetActiveRoles(relationRoles); + + if (includeHistoric || activeRoles.Any()) + { + return new RelationResult + { + RegistrationNumber = registrationNumber, + EntityType = ínnerEntityType, + ExternalId = innerExternalId, + UpdatedAt = innerUpdatedAt, + FoundedAt = foundedAt, + DissolvedAt = dissolvedAt, + Name = innerName, + Type = businessType, + IsActive = isActive, + Roles = + { + Founder = relationRoles.Founder, + LegalOwner = relationRoles.LegalOwner, + BeneficialOwner = relationRoles.BeneficialOwner, + Liquidator = relationRoles.Liquidator, + Auditors = relationRoles.Auditors, + Executives = relationRoles.Executives, + BoardMembers = relationRoles.BoardMembers, + Managers = relationRoles.Managers, + AuthorizedSignatories = relationRoles.AuthorizedSignatories, + AntiMoneyLaunderingAppointees = relationRoles.AntiMoneyLaunderingAppointees, + SpecialFinancialParticipants = relationRoles.SpecialFinancialParticipants, + LiableParticipants = relationRoles.LiableParticipants, + AssociationRepresentatives = relationRoles.AssociationRepresentatives, + CertifiedAuditors = relationRoles.CertifiedAuditors + }, + ActiveRoles = activeRoles + }; + } + + return null; + }) + .Where(x => x != null) + .Where(x => includeHistoric || x.IsActive); + + var rawJson = this.GetDebugRawJson(virksomheder); + + return new RelationDebugResult + { + Companies = companies, + RawJson = rawJson + }; + } + + private string GetRegistrationNumber(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.CvrNummer ?? virksomhed.RegNummer + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Regnummer) + .LastOrDefault(); + } + private string GetRegistrationNumber(VirksomhedSummarisk virksomhedSummarisk) + { + if (virksomhedSummarisk == null) + throw new ArgumentNullException(nameof(virksomhedSummarisk)); + + return virksomhedSummarisk.CvrNummer; + } + private string GetProductionUnitNumber(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.PNummer; + } + private Name GetName(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Navne + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private PersonName GetName(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.Navne + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new PersonName + { + Value = x.Navn + }) + .LastOrDefault(); + } + private Name GetName(VirksomhedSummarisk deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.Navne + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Name GetName(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.Navne + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Name GetLatestName(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var name = this.GetName(virksomhed); + + if (name == null) + { + var nyesteNavn = virksomhed.VirksomhedMetadata.NyesteNavn; + + if (nyesteNavn == null) + { + var lastHistoricName = virksomhed.Navne + .LastOrDefault(); + + if (lastHistoricName == null) + { + return null; + } + + return new Name + { + Value = lastHistoricName.Navn, + Period = + { + From = lastHistoricName.Periode.GyldigFra, + To = lastHistoricName.Periode.GyldigTil + }, + UpdatedAt = lastHistoricName.SidstOpdateret + }; + } + + return new Name + { + Value = nyesteNavn.Navn, + Period = + { + From = nyesteNavn.Periode.GyldigFra, + To = nyesteNavn.Periode.GyldigTil + }, + UpdatedAt = nyesteNavn.SidstOpdateret + }; + } + + return name; + } + private Name GetLatestName(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var name = this.GetName(produktionsEnhed); + + if (name == null) + { + var nyesteNavn = produktionsEnhed.ProduktionsEnhedMetadata.NyesteNavn; + + if (nyesteNavn == null) + { + var lastHistoricName = produktionsEnhed.Navne + .LastOrDefault(); + + if (lastHistoricName == null) + { + return null; + } + + return new Name + { + Value = lastHistoricName.Navn, + Period = + { + From = lastHistoricName.Periode.GyldigFra, + To = lastHistoricName.Periode.GyldigTil + }, + UpdatedAt = lastHistoricName.SidstOpdateret + }; + } + + name = new Name + { + Value = nyesteNavn.Navn, + Period = + { + From = nyesteNavn.Periode.GyldigFra, + To = nyesteNavn.Periode.GyldigTil + }, + UpdatedAt = nyesteNavn.SidstOpdateret + }; + } + + return name; + } + private Name[] GetHistoricNames(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Navne + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Name[] GetHistoricNames(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.Navne + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Name[] GetAlternativeNames(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.BiNavne + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Name[] GetHistoricAlternativeNames(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.BiNavne + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Name + { + Value = x.Navn, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Names GetNames(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var name = this.GetName(virksomhed); + var latestName = this.GetLatestName(virksomhed); + var historicNames = this.GetHistoricNames(virksomhed); + + if (name == null && latestName == null && !historicNames.Any()) + { + return null; + } + + return new Names + { + Current = name, + Latest = latestName, + HistoricNames = historicNames + }; + } + private Names GetNames(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var name = this.GetName(produktionsEnhed); + var latestName = this.GetLatestName(produktionsEnhed); + var historicNames = this.GetHistoricNames(produktionsEnhed); + + if (name == null && latestName == null && !historicNames.Any()) + { + return null; + } + + return new Names + { + Current = name, + Latest = latestName, + HistoricNames = historicNames + }; + } + private string GetTitle(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.Stilling; + } + private string GetCity(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedMetadata.NyesteBeliggenhedsAdresse?.PostDistrikt ?? + virksomhed.BeliggenhedsAdresse.Select(x => x.PostDistrikt).LastOrDefault(); + } + private string GetCity(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.DeltagerPersonMetadata?.NyesteBeliggenhedsAdresse?.PostDistrikt ?? + deltagerPerson.BeliggenhedsAdresse.Select(x => x.PostDistrikt).LastOrDefault(); + } + private string GetPostalCode(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedMetadata.NyesteBeliggenhedsAdresse?.PostNummer ?? + virksomhed.BeliggenhedsAdresse.Select(x => x.PostNummer).LastOrDefault(); + } + private string GetPostalCode(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.DeltagerPersonMetadata?.NyesteBeliggenhedsAdresse?.PostNummer ?? + deltagerPerson.BeliggenhedsAdresse.Select(x => x.PostNummer).LastOrDefault(); + } + private Address GetAddress(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.BeliggenhedsAdresse + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .LastOrDefault(); + } + private Address GetAddress(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.BeliggenhedsAdresse + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .LastOrDefault(); + } + private Address GetAddress(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var address = deltagerPerson.BeliggenhedsAdresse + .Where(x => x.Periode.IsActive()) + .Select(this.GetAddressOrDefault) + .LastOrDefault(); + + if (address == null) + { + return null; + } + + address.IsUnlisted = deltagerPerson.AdresseHemmelig; + address.IsAddressValidationDiscontinued = deltagerPerson.AdresseOpdateringOphoert; + + return address; + } + private Address GetLatestAddress(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var address = + this.GetAddress(virksomhed) ?? + this.GetAddressOrDefault(virksomhed.VirksomhedMetadata.NyesteBeliggenhedsAdresse) ?? + this.GetAddressOrDefault(virksomhed.BeliggenhedsAdresse.OrderBy(x => x.Periode.GyldigFra).LastOrDefault()); + + return address; + } + private Address GetLatestAddress(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var address = + this.GetAddress(produktionsEnhed) ?? + this.GetAddressOrDefault(produktionsEnhed.ProduktionsEnhedMetadata.NyesteBeliggenhedsAdresse) ?? + this.GetAddressOrDefault(produktionsEnhed.BeliggenhedsAdresse.OrderBy(x => x.Periode.GyldigFra).LastOrDefault()); + + return address; + } + private Address GetLatestAddress(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var address = deltagerPerson.BeliggenhedsAdresse + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .LastOrDefault(); + + if (address == null) + { + return null; + } + + address.IsUnlisted = deltagerPerson.AdresseHemmelig; + address.IsAddressValidationDiscontinued = deltagerPerson.AdresseOpdateringOphoert; + + return address; + } + private Address[] GetHistoricAddresses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.BeliggenhedsAdresse + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .ToArray(); + } + private Address[] GetHistoricAddresses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.BeliggenhedsAdresse + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .ToArray(); + } + private Address[] GetHistoricAddresses(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.BeliggenhedsAdresse + .OrderBy(x => x.Periode.GyldigFra) + .Select(this.GetAddressOrDefault) + .Select(x => + { + x.IsUnlisted = deltagerPerson.AdresseHemmelig; + x.IsAddressValidationDiscontinued = deltagerPerson.AdresseOpdateringOphoert; + + return x; + }) + .ToArray(); + } + private AlternativeNamesses GetAlternativeNameses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var alternativeNames = this.GetAlternativeNames(virksomhed); + var historicAlternativeNames = this.GetHistoricAlternativeNames(virksomhed); + + if (!historicAlternativeNames.Any() && !alternativeNames.Any()) + { + return null; + } + + return new AlternativeNamesses + { + Names = alternativeNames, + HistoricNames = historicAlternativeNames + }; + } + private Addresses GetAddresseses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var address = this.GetAddress(virksomhed); + var latestAddress = this.GetLatestAddress(virksomhed); + var historicAddresses = this.GetHistoricAddresses(virksomhed); + + if (address == null && latestAddress == null && !historicAddresses.Any()) + { + return null; + } + + return new Addresses + { + Current = address, + Latest = latestAddress, + HistoricAddresses = historicAddresses + }; + } + private Addresses GetAddresseses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var address = this.GetAddress(produktionsEnhed); + var latestAddress = this.GetLatestAddress(produktionsEnhed); + var historicAddresses = this.GetHistoricAddresses(produktionsEnhed); + + if (address == null && latestAddress == null && !historicAddresses.Any()) + { + return null; + } + + return new Addresses + { + Current = address, + Latest = latestAddress, + HistoricAddresses = historicAddresses + }; + } + private Addresses GetAddresseses(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var address = this.GetAddress(deltagerPerson); + var latestAddress = this.GetLatestAddress(deltagerPerson); + var historicAddresses = this.GetHistoricAddresses(deltagerPerson); + + if (address == null && latestAddress == null && !historicAddresses.Any()) + { + return null; + } + + return new Addresses + { + Current = address, + Latest = latestAddress, + HistoricAddresses = historicAddresses + }; + } + private PhoneNumber GetPhoneNumber(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new PhoneNumber + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private PhoneNumber[] GetHistoricPhoneNumbers(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new PhoneNumber + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private PhoneNumbers GetPhoneNumbers(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var phoneNumber = this.GetPhoneNumber(virksomhed.TelefonNummer); + var historicPhoneNumbers = this.GetHistoricPhoneNumbers(virksomhed.TelefonNummer); + + if (phoneNumber == null && !historicPhoneNumbers.Any()) + { + return null; + } + + return new PhoneNumbers + { + Current = phoneNumber, + HistoricPhoneNumbers = historicPhoneNumbers + }; + } + private PhoneNumbers GetPhoneNumbers(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var phoneNumber = this.GetPhoneNumber(produktionsEnhed.TelefonNummer); + var historicPhoneNumbers = this.GetHistoricPhoneNumbers(produktionsEnhed.TelefonNummer); + + if (phoneNumber == null && !historicPhoneNumbers.Any()) + { + return null; + } + + return new PhoneNumbers + { + Current = phoneNumber, + HistoricPhoneNumbers = historicPhoneNumbers + }; + } + private PhoneNumbers GetPhoneNumbers(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var phoneNumber = this.GetPhoneNumber(deltagerPerson.TelefonNummer); + var historicPhoneNumbers = this.GetHistoricPhoneNumbers(deltagerPerson.TelefonNummer); + + if (phoneNumber == null && !historicPhoneNumbers.Any()) + { + return null; + } + + return new PhoneNumbers + { + Current = phoneNumber, + HistoricPhoneNumbers = historicPhoneNumbers + }; + } + private FaxNumber GetFaxNumber(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new FaxNumber + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private FaxNumber[] GetHistoricFaxNumbers(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new FaxNumber + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private FaxNumbers GetFaxNumbers(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var faxNumber = this.GetFaxNumber(virksomhed.TelefaxNummer); + var historicFaxNumbers = this.GetHistoricFaxNumbers(virksomhed.TelefaxNummer); + + if (faxNumber == null && !historicFaxNumbers.Any()) + { + return null; + } + + return new FaxNumbers + { + Current = faxNumber, + HistoricFaxNumbers = historicFaxNumbers + }; + } + private FaxNumbers GetFaxNumbers(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var faxNumber = this.GetFaxNumber(produktionsEnhed.TelefaxNummer); + var historicFaxNumbers = this.GetHistoricFaxNumbers(produktionsEnhed.TelefaxNummer); + + if (faxNumber == null && !historicFaxNumbers.Any()) + { + return null; + } + + return new FaxNumbers + { + Current = faxNumber, + HistoricFaxNumbers = historicFaxNumbers + }; + } + private FaxNumbers GetFaxNumbers(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var faxNumber = this.GetFaxNumber(deltagerPerson.TelefaxNummer); + var historicFaxNumbers = this.GetHistoricFaxNumbers(deltagerPerson.TelefaxNummer); + + if (faxNumber == null && !historicFaxNumbers.Any()) + { + return null; + } + + return new FaxNumbers + { + Current = faxNumber, + HistoricFaxNumbers = historicFaxNumbers + }; + } + private EmailAddress GetEmailAddress(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new EmailAddress + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private EmailAddress[] GetHistoricEmailAddresses(IEnumerable kontakts) + { + if (kontakts == null) + throw new ArgumentNullException(nameof(kontakts)); + + return kontakts + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new EmailAddress + { + Value = x.KontaktOplysning, + IsUnlisted = x.Hemmelig, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private EmailAddresses GetEmailAddresses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var emailAddress = this.GetEmailAddress(virksomhed.ElektroniskPost); + var historicEmailAddresses = this.GetHistoricEmailAddresses(virksomhed.ElektroniskPost); + + if (emailAddress == null && !historicEmailAddresses.Any()) + { + return null; + } + + return new EmailAddresses + { + Current = emailAddress, + HistoricEmailAddresses = historicEmailAddresses + }; + } + private EmailAddresses GetEmailAddresses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var emailAddress = this.GetEmailAddress(produktionsEnhed.ElektroniskPost); + var historicEmailAddresses = this.GetHistoricEmailAddresses(produktionsEnhed.ElektroniskPost); + + if (emailAddress == null && !historicEmailAddresses.Any()) + { + return null; + } + + return new EmailAddresses + { + Current = emailAddress, + HistoricEmailAddresses = historicEmailAddresses + }; + } + private EmailAddresses GetEmailAddresses(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + var emailAddress = this.GetEmailAddress(deltagerPerson.ElektroniskPost); + var historicEmailAddresses = this.GetHistoricEmailAddresses(deltagerPerson.ElektroniskPost); + + if (emailAddress == null && !historicEmailAddresses.Any()) + { + return null; + } + + return new EmailAddresses + { + Current = emailAddress, + HistoricEmailAddresses = historicEmailAddresses + }; + } + private Website GetWebsite(IEnumerable virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Website + { + Value = x.KontaktOplysning, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Website[] GetHistoricWebsites(IEnumerable virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Website + { + Value = x.KontaktOplysning, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Websites GetWebsites(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var website = this.GetWebsite(virksomhed.Hjemmeside); + var historicWebsites = this.GetHistoricWebsites(virksomhed.Hjemmeside); + + if (website == null && !historicWebsites.Any()) + { + return null; + } + + return new Websites + { + Current = website, + HistoricWebsites = historicWebsites + }; + } + private Purpose GetPurpose(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FORMÅL) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Purpose + { + Value = x.Vaerdi, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Purpose GetLatestPurpose(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FORMÅL) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Purpose + { + Value = x.Vaerdi, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Purpose GetFinancialPurpose(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var value = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FINANSIELT_FORMÅL) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .MaxBy(x => x.Periode.GyldigFra); + + if (value == null) + { + return null; + } + + var success = bool.TryParse(value.Vaerdi, out _); + + if (!success) + { + return null; + } + + var text = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FINANSIEL_DELTYPE) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return new Purpose + { + Value = text ?? "Ja", + Period = + { + From = value.Periode.GyldigFra, + To = value.Periode.GyldigTil + }, + UpdatedAt = value.SidstOpdateret + }; + } + private Purpose GetLatestFinancialPurpose(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var value = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FINANSIELT_FORMÅL) + .SelectMany(x => x.Vaerdier) + .MaxBy(x => x.Periode.GyldigFra); + + if (value == null) + { + return null; + } + + var success = bool.TryParse(value.Vaerdi, out _); + + if (!success) + { + return null; + } + + var text = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FINANSIEL_DELTYPE) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return new Purpose + { + Value = text ?? "Ja", + Period = + { + From = value.Periode.GyldigFra, + To = value.Periode.GyldigTil + }, + UpdatedAt = value.SidstOpdateret + }; + } + private Purpose[] GetHistoricPurposes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FORMÅL) + .SelectMany(x => x.Vaerdier) + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Purpose + { + Value = x.Vaerdi, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Purposes GetPurposes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var purpose = this.GetPurpose(virksomhed); + var latestPurpose = this.GetLatestPurpose(virksomhed); + var historicPurposes = this.GetHistoricPurposes(virksomhed); + var financialPurposes = this.GetFinancialPurposes(virksomhed); + + if (purpose == null && latestPurpose == null && !historicPurposes.Any() && financialPurposes == null) + { + return null; + } + + return new Purposes + { + Current = purpose, + Latest = latestPurpose, + FinancialPurpose = financialPurposes, + HistoricPurposes = historicPurposes + }; + } + private FinancialPurpose GetFinancialPurposes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var financialPurpose = this.GetFinancialPurpose(virksomhed); + var latestFinancialPurpose = this.GetLatestFinancialPurpose(virksomhed); + + if (financialPurpose == null && latestFinancialPurpose == null) + { + return null; + } + + return new FinancialPurpose + { + Current = financialPurpose, + Latest = latestFinancialPurpose + }; + } + private Industry GetPrimaryIndustry(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.HovedBranche + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Industry GetPrimaryIndustry(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.HovedBranche + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private Industry GetLatestPrimaryIndustry(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var industry = this.GetPrimaryIndustry(virksomhed); + + if (industry == null) + { + var nyesteHovedBranche = virksomhed.VirksomhedMetadata.NyesteHovedBranche; + + if (nyesteHovedBranche == null) + { + var lastHistoricIndustry = virksomhed.HovedBranche + .LastOrDefault(); + + if (lastHistoricIndustry == null) + { + return null; + } + + return new Industry + { + Code = lastHistoricIndustry.BrancheKode, + Description = lastHistoricIndustry.BrancheTekst, + Period = + { + From = lastHistoricIndustry.Periode.GyldigFra, + To = lastHistoricIndustry.Periode.GyldigTil + }, + UpdatedAt = lastHistoricIndustry.SidstOpdateret + }; + } + + industry = new Industry + { + Code = nyesteHovedBranche.BrancheKode, + Description = nyesteHovedBranche.BrancheTekst, + Period = + { + From = nyesteHovedBranche.Periode.GyldigFra, + To = nyesteHovedBranche.Periode.GyldigTil + }, + UpdatedAt = nyesteHovedBranche.SidstOpdateret + }; + } + + return industry; + } + private Industry GetLatestPrimaryIndustry(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var industry = this.GetPrimaryIndustry(produktionsEnhed); + + if (industry == null) + { + var nyesteHovedBranche = produktionsEnhed.ProduktionsEnhedMetadata.NyesteHovedBranche; + + if (nyesteHovedBranche == null) + { + var lastHistoricIndustry = produktionsEnhed.HovedBranche + .LastOrDefault(); + + if (lastHistoricIndustry == null) + { + return null; + } + + return new Industry + { + Code = lastHistoricIndustry.BrancheKode, + Description = lastHistoricIndustry.BrancheTekst, + Period = + { + From = lastHistoricIndustry.Periode.GyldigFra, + To = lastHistoricIndustry.Periode.GyldigTil + }, + UpdatedAt = lastHistoricIndustry.SidstOpdateret + }; + } + + industry = new Industry + { + Code = nyesteHovedBranche.BrancheKode, + Description = nyesteHovedBranche.BrancheTekst, + Period = + { + From = nyesteHovedBranche.Periode.GyldigFra, + To = nyesteHovedBranche.Periode.GyldigTil + }, + UpdatedAt = nyesteHovedBranche.SidstOpdateret + }; + } + + return industry; + } + private Industry[] GetHistoricPrimaryIndustries(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.HovedBranche + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Industry[] GetHistoricPrimaryIndustries(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.HovedBranche + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Industry[] GetSecondaryIndustries(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var biBrancher = virksomhed.BiBranche1 + .Concat(virksomhed.BiBranche2) + .Concat(virksomhed.BiBranche3); + + return biBrancher + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Industry[] GetSecondaryIndustries(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var biBrancher = produktionsEnhed.BiBranche1 + .Concat(produktionsEnhed.BiBranche2) + .Concat(produktionsEnhed.BiBranche3); + + return biBrancher + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Industry[] GetHistoricSecondaryIndustries(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var biBrancher = virksomhed.BiBranche1 + .Concat(virksomhed.BiBranche2) + .Concat(virksomhed.BiBranche3); + + return biBrancher + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Industry[] GetHistoricSecondaryIndustries(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var biBrancher = produktionsEnhed.BiBranche1 + .Concat(produktionsEnhed.BiBranche2) + .Concat(produktionsEnhed.BiBranche3); + + return biBrancher + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Industry + { + Code = x.BrancheKode, + Description = x.BrancheTekst, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private string GetIndustryNotes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var brancheAnsvarskode = virksomhed.BrancheAnsvarskode; + var brancheAnsvarsKodeText = this.GetBrancheAnsvarsKodeText(virksomhed.BrancheAnsvarskode); + + if (brancheAnsvarsKodeText == null) + { + return null; + } + + return $"{brancheAnsvarsKodeText} ({brancheAnsvarskode})"; + } + private string GetIndustryNotes(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var brancheAnsvarskode = produktionsEnhed.BrancheAnsvarskode; + var brancheAnsvarsKodeText = this.GetBrancheAnsvarsKodeText(produktionsEnhed.BrancheAnsvarskode); + + if (brancheAnsvarsKodeText == null) + { + return null; + } + + return $"{brancheAnsvarsKodeText} ({brancheAnsvarskode})"; + } + private Industries GetIndustries(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var primaryIndustry = this.GetPrimaryIndustry(virksomhed); + var latestPrimaryIndustry = this.GetLatestPrimaryIndustry(virksomhed); + var historicPrimaryIndustries = this.GetHistoricPrimaryIndustries(virksomhed); + var secondaryIndustries = this.GetSecondaryIndustries(virksomhed); + var historicSecindaryIndustries = this.GetHistoricSecondaryIndustries(virksomhed); + var industryNotes = this.GetIndustryNotes(virksomhed); + + if (primaryIndustry == null && latestPrimaryIndustry == null && !historicPrimaryIndustries.Any() && !secondaryIndustries.Any() && !historicSecindaryIndustries.Any() && industryNotes == null) + { + return null; + } + + return new Industries + { + Current = primaryIndustry, + Latest = latestPrimaryIndustry, + Notes = industryNotes, + HistoricIndustries = historicPrimaryIndustries, + SecondaryIndustries = secondaryIndustries, + HistoricSecondaryIndustries = historicSecindaryIndustries + }; + } + private Industries GetIndustries(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var primaryIndustry = this.GetPrimaryIndustry(produktionsEnhed); + var latestPrimaryIndustry = this.GetLatestPrimaryIndustry(produktionsEnhed); + var historicPrimaryIndustries = this.GetHistoricPrimaryIndustries(produktionsEnhed); + var secondaryIndustries = this.GetSecondaryIndustries(produktionsEnhed); + var historicSecindaryIndustries = this.GetHistoricSecondaryIndustries(produktionsEnhed); + var industryNotes = this.GetIndustryNotes(produktionsEnhed); + + if (primaryIndustry == null && latestPrimaryIndustry == null && !historicPrimaryIndustries.Any() && !secondaryIndustries.Any() && !historicSecindaryIndustries.Any() && industryNotes == null) + { + return null; + } + + return new Industries + { + Current = primaryIndustry, + Latest = latestPrimaryIndustry, + Notes = industryNotes, + HistoricIndustries = historicPrimaryIndustries, + SecondaryIndustries = secondaryIndustries, + HistoricSecondaryIndustries = historicSecindaryIndustries + }; + } + private BusinessType GetBusinessType(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedsForm + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new BusinessType + { + Code = x.VirksomhedsFormKode.ToString(), + Abbreviation = x.KortBeskrivelse, + Description = x.LangBeskrivelse, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private BusinessType GetBusinessType(VirksomhedSummarisk virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedsForm + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new BusinessType + { + Code = x.VirksomhedsFormKode.ToString(), + Abbreviation = x.KortBeskrivelse, + Description = x.LangBeskrivelse, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .LastOrDefault(); + } + private BusinessType GetLatestBusinessType(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var businessType = this.GetBusinessType(virksomhed); + + if (businessType == null) + { + var nyesteVirksomhedsForm = virksomhed.VirksomhedMetadata.NyesteVirksomhedsForm; + + if (nyesteVirksomhedsForm == null) + { + var lastHistoricBusinessType = virksomhed.VirksomhedsForm + .LastOrDefault(); + + if (lastHistoricBusinessType == null) + { + return null; + } + + return new BusinessType + { + Code = lastHistoricBusinessType.VirksomhedsFormKode.ToString(), + Abbreviation = lastHistoricBusinessType.KortBeskrivelse, + Description = lastHistoricBusinessType.LangBeskrivelse, + Period = + { + From = lastHistoricBusinessType.Periode.GyldigFra, + To = lastHistoricBusinessType.Periode.GyldigTil + }, + UpdatedAt = lastHistoricBusinessType.SidstOpdateret + }; + } + + businessType = new BusinessType + { + Code = nyesteVirksomhedsForm.VirksomhedsFormKode.ToString(), + Abbreviation = nyesteVirksomhedsForm.KortBeskrivelse, + Description = nyesteVirksomhedsForm.LangBeskrivelse, + Period = + { + From = nyesteVirksomhedsForm.Periode.GyldigFra, + To = nyesteVirksomhedsForm.Periode.GyldigTil + }, + UpdatedAt = nyesteVirksomhedsForm.SidstOpdateret + }; + } + + return businessType; + } + private BusinessType[] GetHistoricBusinessTypes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedsForm + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new BusinessType + { + Abbreviation = x.KortBeskrivelse, + Description = x.LangBeskrivelse, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private bool GetIsGovernmental(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var statsligVirk = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.STATSLIG_VIRK) + .SelectMany(x => x.Vaerdier) + .MaxBy(x => x.Periode.GyldigFra); + + if (statsligVirk == null) + { + return false; + } + + var livsForloeb = virksomhed.LivsForloeb + .LastOrDefault(); + + if (livsForloeb?.Periode.IsActive() == true) + { + if (statsligVirk.Periode.IsActive()) + { + return statsligVirk.Vaerdi + .TryParseBool(); + } + + return false; + } + + return statsligVirk.Periode.GyldigTil == livsForloeb?.Periode.GyldigTil; + } + private bool GetIsPubliclyListed(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.BØRSNOTERET) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private bool GetIsSocialEconomic(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var socialØkonomiskVirksomhed = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.SOCIAL_ØKONOMISK_VIRKSOMHED) + .SelectMany(x => x.Vaerdier) + .MaxBy(x => x.Periode.GyldigTil); + + if (socialØkonomiskVirksomhed == null) + { + return false; + } + + var livsForloeb = virksomhed.LivsForloeb + .LastOrDefault(); + + if (livsForloeb?.Periode.IsActive() == true) + { + if (socialØkonomiskVirksomhed.Periode.IsActive()) + { + return socialØkonomiskVirksomhed.Vaerdi + .TryParseBool(); + } + + return false; + } + + return socialØkonomiskVirksomhed.Periode.GyldigTil == livsForloeb?.Periode.GyldigTil; + } + private bool GetIsCertifiedAuditor(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var registreringRevisionsvirksomhedstype = virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.REGISTER) + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_REVISIONSVIRKSOMHEDSTYPE) + .SelectMany(z => z.Vaerdier)) + .MaxBy(x => x.Periode.GyldigTil); + + if (registreringRevisionsvirksomhedstype == null) + { + return false; + } + + var livsForloeb = virksomhed.LivsForloeb + .LastOrDefault(); + + if (livsForloeb?.Periode.IsActive() == true) + { + return registreringRevisionsvirksomhedstype.Periode.IsActive(); + } + + return registreringRevisionsvirksomhedstype.Periode.GyldigTil == livsForloeb?.Periode.GyldigTil; + } + private BusinessTypes GetBusinessTypes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var businessType = this.GetBusinessType(virksomhed); + var latestBusinessType = this.GetLatestBusinessType(virksomhed); + var historicBusinessTypes = this.GetHistoricBusinessTypes(virksomhed); + var isPubliclyListed = this.GetIsPubliclyListed(virksomhed); + var isGovernmental = this.GetIsGovernmental(virksomhed); + var isSocialEconomic = this.GetIsSocialEconomic(virksomhed); + var isCertifiedAuditor = this.GetIsCertifiedAuditor(virksomhed); + + return new BusinessTypes + { + Current = businessType, + Latest = latestBusinessType, + IsPubliclyListed = isPubliclyListed, + IsGovernmental = isGovernmental, + IsSocialEconomic = isSocialEconomic, + IsCertifiedAuditor = isCertifiedAuditor, + HistoricTypes = historicBusinessTypes + }; + } + private Status GetStatus(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var virksomhedsStatus = virksomhed.VirksomhedsStatus + .Where(x => x.Periode.IsActive()) + .MaxBy(x => x.Periode.GyldigFra) + ?? virksomhed.VirksomhedsStatus + .MaxBy(x => x.Periode.GyldigFra); + + var status = virksomhedsStatus?.Status ?? virksomhed.VirksomhedMetadata.SammensatStatus; + + status = status switch + { + "Aktiv" or "AKTIV" => "NORMAL", + "UDENRETSVIRKNING" => "UDEN RETSVIRKNING", + "UNDERFRIVILLIGLIKVIDATION" => "UNDER FRIVILLIG LIKVIDATION", + "UNDERREKONSTRUKTION" => "UNDER REKONSTRUKTION", + "UNDERKONKURS" => "UNDER KONKURS", + "UNDERTVANGSOPLØSNING" => "UNDER TVANGSOPLØSNING", + "OPLØSTEFTERKONKURS" => "OPLØST EFTER KONKURS", + "OPLØSTEFTERFRIVILLIGLIKVIDATION" => "OPLØST EFTER FRIVILLIG LIKVIDATION", + "OPLØSTEFTERERKLÆRING" => "OPLØST EFTER ERKLÆRING", + "UNDERREASSUMERING" => "UNDER REASSUMERING", + "OPLØSTEFTERFUSION" => "OPLØST EFTER FUSION", + "OPLØSTEFTERSPALTNING" => "OPLØST EFTER SPALTNING", + _ => status + }; + + var periode = virksomhedsStatus?.Periode; + + if (periode == null) + { + var periodeLivsForloeb = virksomhed.LivsForloeb + .Select(x => x.Periode) + .LastOrDefault(); + + var from = periodeLivsForloeb?.GyldigTil ?? periodeLivsForloeb?.GyldigFra; + + if (from != null) + { + periode = new Periode + { + GyldigFra = from + }; + } + } + + if (string.IsNullOrEmpty(status)) + { + return null; + } + + return new Status + { + Value = status.ToStringPretty(), + Period = periode == null + ? null + : new Period + { + From = periode.GyldigFra, + To = periode.GyldigTil + }, + UpdatedAt = virksomhedsStatus?.SidstOpdateret + }; + } + private Status GetStatus(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var status = produktionsEnhed.ProduktionsEnhedMetadata?.SammensatStatus; + + status = status switch + { + "Aktiv" or "AKTIV" => "NORMAL", + "UDENRETSVIRKNING" => "UDEN RETSVIRKNING", + "UNDERFRIVILLIGLIKVIDATION" => "UNDER FRIVILLIG LIKVIDATION", + "UNDERREKONSTRUKTION" => "UNDER REKONSTRUKTION", + "UNDERKONKURS" => "UNDER KONKURS", + "UNDERTVANGSOPLØSNING" => "UNDER TVANGSOPLØSNING", + "OPLØSTEFTERKONKURS" => "OPLØST EFTER KONKURS", + "OPLØSTEFTERFRIVILLIGLIKVIDATION" => "OPLØST EFTER FRIVILLIG LIKVIDATION", + "OPLØSTEFTERERKLÆRING" => "OPLØST EFTER ERKLÆRING", + "UNDERREASSUMERING" => "UNDER REASSUMERING", + "OPLØSTEFTERFUSION" => "OPLØST EFTER FUSION", + "OPLØSTEFTERSPALTNING" => "OPLØST EFTER SPALTNING", + _ => status + }; + + if (string.IsNullOrEmpty(status)) + { + return null; + } + + return new Status + { + Value = status.ToStringPretty() + }; + } + private bool GetStatusIsActive(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var isActive = virksomhed.LivsForloeb + .Any(x => x.Periode.IsActive()); + + if (!isActive) + { + return false; + } + + var status = this.GetStatus(virksomhed)?.Value; + + var isEnded = status != null && + ( + status == "Ophørt" || + status == "Slettet" || + status == "Tvangsopløst" || + status.StartsWith("Opløst") + ); + + return !isEnded; + } + private bool GetStatusIsActive(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.LivsForloeb + .Any(x => x.Periode.IsActive()); + } + private bool GetStatusIsActive(VirksomhedSummarisk virksomhedSummarisk) + { + if (virksomhedSummarisk == null) + throw new ArgumentNullException(nameof(virksomhedSummarisk)); + + return virksomhedSummarisk.LivsForloeb + .Any(x => x.Periode.IsActive()); + } + private Status[] GetHistoricStatusses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedsStatus + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Status + { + Value = x.Status, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private CreditStatus GetCreditStatus(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var status = virksomhed.Status + .Where(x => x.Periode.IsActive()) + .MaxBy(x => x.Periode.GyldigFra); + + if (status == null) + { + return null; + } + + return new CreditStatus + { + Code = status.KreditOplysningKode.ToString(), + Text = this.GetKreditOplysningKodeText(status.KreditOplysningKode), + Notes = this.GetStatusKodeText(status.StatusKode), + Period = + { + From = status.Periode.GyldigFra + }, + UpdatedAt = status.SidstOpdateret + }; + } + private CreditStatus[] GetHistoricCreditStatusses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Status + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new CreditStatus + { + Code = x.KreditOplysningKode.ToString(), + Text = this.GetKreditOplysningKodeText(x.KreditOplysningKode), + Notes = this.GetStatusKodeText(x.StatusKode), + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private Statuses GetStatuses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var status = this.GetStatus(virksomhed); + var isActive = this.GetStatusIsActive(virksomhed); + var historicStatusses = this.GetHistoricStatusses(virksomhed); + var creditStatuses = this.GetCreditStatuses(virksomhed); + + return new Statuses + { + Current = status, + IsActive = isActive, + CreditStatus = creditStatuses, + HistoricStatuses = historicStatusses + }; + } + private StatusesSimple GetStatuses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var status = this.GetStatus(produktionsEnhed); + var isActive = this.GetStatusIsActive(produktionsEnhed); + + return new StatusesSimple + { + Current = status, + IsActive = isActive + }; + } + private CreditStatuses GetCreditStatuses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var creditStatus = this.GetCreditStatus(virksomhed); + var historicCreditStatusses = this.GetHistoricCreditStatusses(virksomhed); + + if (creditStatus == null && !historicCreditStatusses.Any()) + { + return null; + } + + return new CreditStatuses + { + Current = creditStatus, + HistoricStatuses = historicCreditStatusses + }; + } + private Employees GetEmployees(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var isActive = this.GetStatusIsActive(virksomhed); + + if (!isActive) + { + return null; + } + + return this.GetEmployeess(virksomhed) + .LastOrDefault(); + } + private Employees GetEmployees(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var isActive = this.GetStatusIsActive(produktionsEnhed); + + if (!isActive) + { + return null; + } + + return this.GetEmployeess(produktionsEnhed) + .LastOrDefault(); + } + private Employees GetLatestEmployees(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return this.GetEmployeess(virksomhed) + .LastOrDefault(); + } + private Employees GetLatestEmployees(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return this.GetEmployeess(produktionsEnhed) + .LastOrDefault(); + } + private Employees[] GetEmployeess(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var employees = new List(); + + var erstMaanedsBeskaeftigelser = virksomhed.ErstMaanedsBeskaeftigelse + .Select(x => + { + var day = DateTime.DaysInMonth(x.Aar, x.Maaned); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, x.Maaned, 1), + To = new DateOnly(x.Aar, x.Maaned, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }); + + employees + .AddRange(erstMaanedsBeskaeftigelser); + + var minEmployee = employees + .MinBy(x => x.Period.To); + + var maanedsBeskaeftigelser = virksomhed.MaanedsBeskaeftigelse + .Select(x => + { + var day = DateTime.DaysInMonth(x.Aar, x.Maaned); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, x.Maaned, 1), + To = new DateOnly(x.Aar, x.Maaned, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }) + .Where(x => minEmployee == null || x.Period.From < minEmployee.Period.From) + .ToArray(); + + employees + .AddRange(maanedsBeskaeftigelser); + + minEmployee = employees + .MinBy(x => x.Period.To); + + var kvartalsBeskaeftigelser = virksomhed.KvartalsBeskaeftigelse + .Select(x => + { + var maanedBegin = (x.Kvartal - 1) * 3 + 1; + var maanedEnd = maanedBegin + 2; + var day = DateTime.DaysInMonth(x.Aar, maanedEnd); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, maanedBegin, 1), + To = new DateOnly(x.Aar, maanedEnd, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }) + .Where(x => minEmployee == null || x.Period.From < minEmployee.Period.From) + .ToArray(); + + employees + .AddRange(kvartalsBeskaeftigelser); + + minEmployee = employees + .MinBy(x => x.Period.To); + + var aarsBeskaeftigelser = virksomhed.AarsBeskaeftigelse + .Select(x => new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, 1, 1), + To = new DateOnly(x.Aar, 12, 31) + }, + UpdatedAt = x.SidstOpdateret + }) + .Where(x => minEmployee == null || x.Period.To < minEmployee.Period.To) + .ToArray(); + + employees + .AddRange(aarsBeskaeftigelser); + + return employees + .OrderBy(x => x.Period.From) + .ToArray(); + } + private Employees[] GetEmployeess(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var employees = new List(); + + var erstMaanedsBeskaeftigelser = produktionsEnhed.ErstMaanedsBeskaeftigelse + .Select(x => + { + var day = DateTime.DaysInMonth(x.Aar, x.Maaned); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, x.Maaned, 1), + To = new DateOnly(x.Aar, x.Maaned, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }); + + employees + .AddRange(erstMaanedsBeskaeftigelser); + + var minEmployee = employees + .MinBy(x => x.Period.To); + + var maanedsBeskaeftigelser = produktionsEnhed.MaanedsBeskaeftigelse + .Select(x => + { + var day = DateTime.DaysInMonth(x.Aar, x.Maaned); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, x.Maaned, 1), + To = new DateOnly(x.Aar, x.Maaned, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }) + .Where(x => minEmployee == null || x.Period.From < minEmployee.Period.From) + .ToArray(); + + employees + .AddRange(maanedsBeskaeftigelser); + + minEmployee = employees + .MinBy(x => x.Period.To); + + var kvartalsBeskaeftigelser = produktionsEnhed.KvartalsBeskaeftigelse + .Select(x => + { + var maanedBegin = (x.Kvartal - 1) * 3 + 1; + var maanedEnd = maanedBegin + 2; + var day = DateTime.DaysInMonth(x.Aar, maanedEnd); + + return new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, maanedBegin, 1), + To = new DateOnly(x.Aar, maanedEnd, day) + }, + UpdatedAt = x.SidstOpdateret + }; + }) + .Where(x => minEmployee == null || x.Period.From < minEmployee.Period.From) + .ToArray(); + + employees + .AddRange(kvartalsBeskaeftigelser); + + minEmployee = employees + .MinBy(x => x.Period.To); + + var aarsBeskaeftigelser = produktionsEnhed.AarsBeskaeftigelse + .Select(x => new Employees + { + NumberOfEmployees = x.AntalAnsatte, + NumberOfFulltimePositions = x.AntalAarsvaerk, + Period = new Period + { + From = new DateOnly(x.Aar, 1, 1), + To = new DateOnly(x.Aar, 12, 31) + }, + UpdatedAt = x.SidstOpdateret + }) + .Where(x => minEmployee == null || x.Period.To < minEmployee.Period.To) + .ToArray(); + + employees + .AddRange(aarsBeskaeftigelser); + + return employees + .OrderBy(x => x.Period.From) + .ToArray(); + } + private Employees[] GetHistoricEmployees(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var isActive = this.GetStatusIsActive(virksomhed); + + var skipLast = isActive ? 1 : 0; + + return this.GetEmployeess(virksomhed) + .SkipLast(skipLast) + .ToArray(); + } + private Employees[] GetHistoricEmployees(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var isActive = this.GetStatusIsActive(produktionsEnhed); + + var skipLast = isActive ? 1 : 0; + + return this.GetEmployeess(produktionsEnhed) + .SkipLast(skipLast) + .ToArray(); + } + private RelationManagers GetManagers(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.DAGLIG_LEDELSE, + AttributVaerdier.UDDELER, + AttributVaerdier.TILSYNSRÅD, + AttributVaerdier.LEDELSE, + AttributVaerdier.ANDET_LEDELSESORGAN, + AttributVaerdier.KONTROLRÅD, + AttributVaerdier.DRIFTSLEDER, + AttributVaerdier.ANDEN_DAGLIG_LEDELSE, + AttributVaerdier.PROKURIST, + AttributVaerdier.ØVERSTE_LEDELSESORGAN, + AttributVaerdier.BESTYRER, + AttributVaerdier.LEDELSESKOMITEE, + AttributVaerdier.LEDER_FOR_JOINT_VENTURE, + AttributVaerdier.CITYCHEF, + AttributVaerdier.OVERORDNET_LEDELSE, + AttributVaerdier.DAGLIG_LEDELSE_OG_ADM, + AttributVaerdier.SKOLELEDER, + AttributVaerdier.ADMINISTRATIV_LEDER, + AttributVaerdier.KÆDECHEF, + AttributVaerdier.LEDELSESORGAN, + AttributVaerdier.MEJERIBESTYRER, + AttributVaerdier.STATIONSLEDER, + AttributVaerdier.DAGLIG_LEDER, + AttributVaerdier.CENTERLEDER, + AttributVaerdier.INTERESSENTSKABSLEDELSE, + AttributVaerdier.ANSVARLIG_LEDELSE, + AttributVaerdier.TURIST_OG_ERHVERVSCHEF, + AttributVaerdier.BUTIKSBESTYRER, + AttributVaerdier.LEDER, + AttributVaerdier.ANSVARLIG_LEDER, + AttributVaerdier.LEDELSESUDVALG, + AttributVaerdier.MANAGER, + AttributVaerdier.PROJEKTCHEF, + AttributVaerdier.UDVALG, + AttributVaerdier.KASSERER, + AttributVaerdier.GENERALAGENT, + AttributVaerdier.KOMMANDITISTREPRÆSENTANT, + AttributVaerdier.FORRETNINGSBESTYRELSE, + AttributVaerdier.ANSVARLIG_DELTAGER, + AttributVaerdier.FORRETNINGSUDVALG, + AttributVaerdier.KOMMITTERET, + AttributVaerdier.STYREGRUPPE, + AttributVaerdier.PRÆSIDIET, + AttributVaerdier.STYRELSE, + AttributVaerdier.REPRÆSENTANTSKAB, + AttributVaerdier.REKONSTRUKTØRER, + AttributVaerdier.REVISIONSVIRKSOMHEDLEDELSE, + AttributVaerdier.ADMINISTRATOR, + AttributVaerdier.ADMINISTRATIONSORGAN, + AttributVaerdier.ADMINISTRATIONSSELSKAB, + AttributVaerdier.ADMINISTRATION, + AttributVaerdier.SELSKABSADMINISTRATION + }; + + var managers = this.GetRelations(virksomhedSummariskRelation, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!managers.Any()) + { + return null; + } + + var current = managers + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationManager + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = managers + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationManager + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationManagers + { + Current = current, + HistoricManagers = historic + }; + } + private RelationManagers GetManagers(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.DAGLIG_LEDELSE, + AttributVaerdier.UDDELER, + AttributVaerdier.TILSYNSRÅD, + AttributVaerdier.LEDELSE, + AttributVaerdier.ANDET_LEDELSESORGAN, + AttributVaerdier.KONTROLRÅD, + AttributVaerdier.DRIFTSLEDER, + AttributVaerdier.ANDEN_DAGLIG_LEDELSE, + AttributVaerdier.PROKURIST, + AttributVaerdier.ØVERSTE_LEDELSESORGAN, + AttributVaerdier.BESTYRER, + AttributVaerdier.LEDELSESKOMITEE, + AttributVaerdier.LEDER_FOR_JOINT_VENTURE, + AttributVaerdier.CITYCHEF, + AttributVaerdier.OVERORDNET_LEDELSE, + AttributVaerdier.DAGLIG_LEDELSE_OG_ADM, + AttributVaerdier.SKOLELEDER, + AttributVaerdier.ADMINISTRATIV_LEDER, + AttributVaerdier.KÆDECHEF, + AttributVaerdier.LEDELSESORGAN, + AttributVaerdier.MEJERIBESTYRER, + AttributVaerdier.STATIONSLEDER, + AttributVaerdier.DAGLIG_LEDER, + AttributVaerdier.CENTERLEDER, + AttributVaerdier.INTERESSENTSKABSLEDELSE, + AttributVaerdier.ANSVARLIG_LEDELSE, + AttributVaerdier.TURIST_OG_ERHVERVSCHEF, + AttributVaerdier.BUTIKSBESTYRER, + AttributVaerdier.LEDER, + AttributVaerdier.ANSVARLIG_LEDER, + AttributVaerdier.LEDELSESUDVALG, + AttributVaerdier.MANAGER, + AttributVaerdier.PROJEKTCHEF, + AttributVaerdier.UDVALG, + AttributVaerdier.KASSERER, + AttributVaerdier.GENERALAGENT, + AttributVaerdier.KOMMANDITISTREPRÆSENTANT, + AttributVaerdier.FORRETNINGSBESTYRELSE, + AttributVaerdier.ANSVARLIG_DELTAGER, + AttributVaerdier.FORRETNINGSUDVALG, + AttributVaerdier.KOMMITTERET, + AttributVaerdier.STYREGRUPPE, + AttributVaerdier.PRÆSIDIET, + AttributVaerdier.STYRELSE, + AttributVaerdier.REPRÆSENTANTSKAB, + AttributVaerdier.REKONSTRUKTØRER, + AttributVaerdier.REVISIONSVIRKSOMHEDLEDELSE, + AttributVaerdier.ADMINISTRATOR, + AttributVaerdier.ADMINISTRATIONSORGAN, + AttributVaerdier.ADMINISTRATIONSSELSKAB, + AttributVaerdier.ADMINISTRATION, + AttributVaerdier.SELSKABSADMINISTRATION + }; + + var managers = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!managers.Any()) + { + return null; + } + + var current = managers + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationManager + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = managers + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationManager + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationManagers + { + Current = current, + HistoricManagers = historic + }; + } + private Managers GetManagers(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.DAGLIG_LEDELSE, + AttributVaerdier.UDDELER, + AttributVaerdier.TILSYNSRÅD, + AttributVaerdier.LEDELSE, + AttributVaerdier.ANDET_LEDELSESORGAN, + AttributVaerdier.KONTROLRÅD, + AttributVaerdier.DRIFTSLEDER, + AttributVaerdier.ANDEN_DAGLIG_LEDELSE, + AttributVaerdier.PROKURIST, + AttributVaerdier.ØVERSTE_LEDELSESORGAN, + AttributVaerdier.BESTYRER, + AttributVaerdier.LEDELSESKOMITEE, + AttributVaerdier.LEDER_FOR_JOINT_VENTURE, + AttributVaerdier.CITYCHEF, + AttributVaerdier.OVERORDNET_LEDELSE, + AttributVaerdier.DAGLIG_LEDELSE_OG_ADM, + AttributVaerdier.SKOLELEDER, + AttributVaerdier.ADMINISTRATIV_LEDER, + AttributVaerdier.KÆDECHEF, + AttributVaerdier.LEDELSESORGAN, + AttributVaerdier.MEJERIBESTYRER, + AttributVaerdier.STATIONSLEDER, + AttributVaerdier.DAGLIG_LEDER, + AttributVaerdier.CENTERLEDER, + AttributVaerdier.INTERESSENTSKABSLEDELSE, + AttributVaerdier.ANSVARLIG_LEDELSE, + AttributVaerdier.TURIST_OG_ERHVERVSCHEF, + AttributVaerdier.BUTIKSBESTYRER, + AttributVaerdier.LEDER, + AttributVaerdier.ANSVARLIG_LEDER, + AttributVaerdier.LEDELSESUDVALG, + AttributVaerdier.MANAGER, + AttributVaerdier.PROJEKTCHEF, + AttributVaerdier.UDVALG, + AttributVaerdier.KASSERER, + AttributVaerdier.GENERALAGENT, + AttributVaerdier.KOMMANDITISTREPRÆSENTANT, + AttributVaerdier.FORRETNINGSBESTYRELSE, + AttributVaerdier.ANSVARLIG_DELTAGER, + AttributVaerdier.FORRETNINGSUDVALG, + AttributVaerdier.KOMMITTERET, + AttributVaerdier.STYREGRUPPE, + AttributVaerdier.PRÆSIDIET, + AttributVaerdier.STYRELSE, + AttributVaerdier.REPRÆSENTANTSKAB, + AttributVaerdier.REKONSTRUKTØRER, + AttributVaerdier.REVISIONSVIRKSOMHEDLEDELSE, + AttributVaerdier.ADMINISTRATOR, + AttributVaerdier.ADMINISTRATIONSORGAN, + AttributVaerdier.ADMINISTRATIONSSELSKAB, + AttributVaerdier.ADMINISTRATION, + AttributVaerdier.SELSKABSADMINISTRATION + }; + + var managers = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!managers.Any()) + { + return null; + } + + var current = managers + .Where(x => x.Period.IsValid()); + + var historic = managers + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .ToArray(); + + return new Managers + { + Current = current, + HistoricManagers = historic + }; + } + private Employment GetEmployment(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var employeeses = this.GetEmployeeses(virksomhed); + var management = this.GetManagers(virksomhed); + + if (employeeses == null && management == null) + { + return null; + } + + return new Employment + { + Employees = employeeses, + Managers = management + }; + } + private Employeeses GetEmployeeses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var employees = this.GetEmployees(virksomhed); + var latestEmployees = this.GetLatestEmployees(virksomhed); + var historicEmployees = this.GetHistoricEmployees(virksomhed); + + if (employees == null && latestEmployees == null && !historicEmployees.Any()) + { + return null; + } + + return new Employeeses + { + Current = employees, + Latest = latestEmployees, + HistoricEmployees = historicEmployees + }; + } + private Employeeses GetEmployeeses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var employees = this.GetEmployees(produktionsEnhed); + var latestEmployees = this.GetLatestEmployees(produktionsEnhed); + var historicEmployees = this.GetHistoricEmployees(produktionsEnhed); + + if (employees == null && latestEmployees == null && !historicEmployees.Any()) + { + return null; + } + + return new Employeeses + { + Current = employees, + Latest = latestEmployees, + HistoricEmployees = historicEmployees + }; + } + private RegisteredCapital GetRegisteredCapital(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var capital = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KAPITAL) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .LastOrDefault(x => x.Periode.IsActive()); + + if (capital == null) + { + return null; + } + + var currency = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KAPITALVALUTA) + .SelectMany(x => x.Vaerdier) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return new RegisteredCapital + { + Value = capital.Vaerdi?.TryParseDouble(DanishCvrService.numberFormatInfo), + Currency = currency, + Period = + { + From = capital.Periode.GyldigFra + }, + UpdatedAt = capital.SidstOpdateret + }; + } + private bool GetRegisteredCapitalIsPartiallyPaid(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KAPITAL_DELVIST) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private RegisteredCapital[] GetHistoricRegisteredCapitals(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var capitals = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KAPITAL) + .SelectMany(x => x.Vaerdier) + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra); + + var currencies = virksomhed.Attributter + .Where(y => y.Type == AttributTyper.KAPITALVALUTA) + .SelectMany(y => y.Vaerdier) + .ToArray(); + + return capitals + .Select(x => + { + var currency = currencies.LastOrDefault(y => y.Periode.GyldigFra >= x.Periode.GyldigFra) ?? + currencies.LastOrDefault(); + + return new RegisteredCapital + { + Value = x.Vaerdi?.TryParseDouble(DanishCvrService.numberFormatInfo), + Currency = currency?.Vaerdi, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + } + }; + }) + .ToArray(); + } + private RegisteredCapitals GetRegisteredCapitals(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var registeredCapital = this.GetRegisteredCapital(virksomhed); + var historicRegisteredCapitals = this.GetHistoricRegisteredCapitals(virksomhed); + var isPartiallyPaid = this.GetRegisteredCapitalIsPartiallyPaid(virksomhed); + + if (registeredCapital == null && !historicRegisteredCapitals.Any() && !isPartiallyPaid) + { + return null; + } + + return new RegisteredCapitals + { + Current = registeredCapital, + HistoricRegisteredCapitals = historicRegisteredCapitals, + IsPartiallyPaid = isPartiallyPaid + }; + } + private FinancialYear GetFinancialYear(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var regnskabsårStart = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_START) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .LastOrDefault(); + + var regnskabsårSlut = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_SLUT) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .LastOrDefault(); + + if (regnskabsårStart == null || regnskabsårSlut == null) + { + return null; + } + + var finanicalYearBegin = regnskabsårStart.Vaerdi + .GetYearAndMonth(); + + var finanicalYearEnd = regnskabsårSlut.Vaerdi + .GetYearAndMonth(); + + return new FinancialYear + { + Begin = finanicalYearBegin, + End = finanicalYearEnd, + Period = + { + From = regnskabsårStart.Periode.GyldigFra + }, + UpdatedAt = regnskabsårStart.SidstOpdateret + }; + } + private FinancialYear GetLatestFinancialYear(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var regnskabsårStart = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_START) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .LastOrDefault(); + + var regnskabsårSlut = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_SLUT) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .LastOrDefault(); + + if (regnskabsårStart == null || regnskabsårSlut == null) + { + return null; + } + + var finanicalYearBegin = regnskabsårStart.Vaerdi + .GetYearAndMonth(); + + var finanicalYearEnd = regnskabsårSlut.Vaerdi + .GetYearAndMonth(); + + return new FinancialYear + { + Begin = finanicalYearBegin, + End = finanicalYearEnd, + Period = + { + From = regnskabsårStart.Periode.GyldigFra, + To = regnskabsårStart.Periode.GyldigTil + }, + UpdatedAt = regnskabsårSlut.SidstOpdateret + }; + } + private Period GetFirstFinancialYear(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var firstStartVaerdiers = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FØRSTE_REGNSKABSPERIODE_START) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var from = + firstStartVaerdiers + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault() ?? + firstStartVaerdiers + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + + if (from == null) + { + return null; + } + + var firstSlutVaerdiers = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.FØRSTE_REGNSKABSPERIODE_SLUT) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var to = + firstSlutVaerdiers + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault() ?? + firstSlutVaerdiers + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + + return new Period + { + From = from, + To = to + }; + } + private Period GetFinancialOngoingTransitionPeriod(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var transitionPeriodStart = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.OMLÆGNINGSPERIODE_START) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + + var transitionPeriodEnd = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.OMLÆGNINGSPERIODE_SLUT) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + + return transitionPeriodStart == null + ? null + : new Period + { + From = transitionPeriodStart, + To = transitionPeriodEnd + }; + } + private string GetFinancialYearNotes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_FRITEKST) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + } + private FinancialYear[] GetHistoricFinancialYears(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var regnskabsårStarts = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_START) + .SelectMany(x => x.Vaerdier) + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var regnskabsårSluts = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REGNSKABSÅR_SLUT) + .SelectMany(x => x.Vaerdier) + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.GetYearAndMonth()) + .ToArray(); + + return regnskabsårStarts + .Select((x, y) => + { + var monthAndDaySlut = regnskabsårSluts + .ElementAtOrDefault(y); + + if (monthAndDaySlut == null) + { + var regnskabsårSlutsFixed = virksomhed.Attributter + .Where(z => z.Type == AttributTyper.REGNSKABSÅR_SLUT) + .SelectMany(z => z.Vaerdier) + .OrderBy(z => z.Periode.GyldigFra) + .Select(z => z.Vaerdi.GetYearAndMonth()) + .ToArray(); + + monthAndDaySlut = regnskabsårSlutsFixed + .ElementAtOrDefault(y); + } + + return new FinancialYear + { + Begin = x.Vaerdi.GetYearAndMonth(), + End = monthAndDaySlut, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }; + }) + .ToArray(); + } + private FinancialYears GetFinancialYears(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var financialYear = this.GetFinancialYear(virksomhed); + var latestFinancialYear = this.GetLatestFinancialYear(virksomhed); + var historicFinancialYears = this.GetHistoricFinancialYears(virksomhed); + var firstFinancialYear = this.GetFirstFinancialYear(virksomhed); + var financialOngoingTransitionPeriod = this.GetFinancialOngoingTransitionPeriod(virksomhed); + var financialYearNotes = this.GetFinancialYearNotes(virksomhed); + + if (financialYear == null && latestFinancialYear == null && !historicFinancialYears.Any() && firstFinancialYear == null && financialOngoingTransitionPeriod == null && financialYearNotes == null) + { + return null; + } + + return new FinancialYears + { + Current = financialYear, + Latest = latestFinancialYear, + FirstFinancialYear = firstFinancialYear, + OngoingTransitionPeriod = financialOngoingTransitionPeriod, + Notes = financialYearNotes, + HistoricFinancialYears = historicFinancialYears + }; + } + private string GetAntiMoneyLaunderingText(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.HVIDVASK) + .SelectMany(y => y.OrganisationsNavn)) + .Select(x => x.Navn) + .LastOrDefault(); + } + private string[] GetAntiMoneyLaunderingActivities(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.HVIDVASK) + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.HVIDVASK_ERHVERVSAKTIVITET) + .SelectMany(z => z.Vaerdier + .Select(a => a.Vaerdi.ToStringPretty()))) + .Distinct() + .ToArray(); + } + private bool GetIsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return !virksomhed.Attributter + .Where(x => x.Type == AttributTyper.OMFATTET_AF_LOV_OM_HVIDVASK_OG_TERRORFINANSIERING) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi != "IKKE_OMFATTET") + .LastOrDefault(); + } + private RelationAntiMoneyLaunderingAppointees GetAntiMoneyLaunderingAppointees(VirksomhedSummariskRelation virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.HVIDVASK + }; + + var antiMoneyLaunderingAppointees = this.GetRelations(virksomhed, HovedTyper.HVIDVASK, attributVærdier); + + if (!antiMoneyLaunderingAppointees.Any()) + { + return null; + } + + var current = antiMoneyLaunderingAppointees + .Where(x => x.Period.IsValid()) + .Select(x => new RelationAntiMoneyLaunderingAppointee + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = antiMoneyLaunderingAppointees + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAntiMoneyLaunderingAppointee + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAntiMoneyLaunderingAppointees + { + Current = current, + HistoricAntiMoneyLaunderingAppointees = historic + }; + } + private RelationAntiMoneyLaunderingAppointees GetAntiMoneyLaunderingAppointees(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.HVIDVASK + }; + + var antiMoneyLaunderingAppointees = this.GetRelations(virksomhed, HovedTyper.HVIDVASK, attributVærdier) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!antiMoneyLaunderingAppointees.Any()) + { + return null; + } + + var current = antiMoneyLaunderingAppointees + .Where(x => x.Period.IsValid()) + .Select(x => new RelationAntiMoneyLaunderingAppointee + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = antiMoneyLaunderingAppointees + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAntiMoneyLaunderingAppointee + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAntiMoneyLaunderingAppointees + { + Current = current, + HistoricAntiMoneyLaunderingAppointees = historic + }; + } + private AntiMoneyLaunderingAppointees GetAntiMoneyLaunderingAppointees(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.HVIDVASK + }; + + var antiMoneyLaunderingAppointees = this.GetRelations(virksomhed, HovedTyper.HVIDVASK, attributVærdier); + + if (!antiMoneyLaunderingAppointees.Any()) + { + return null; + } + + var current = antiMoneyLaunderingAppointees + .LastOrDefault(x => x.Period.IsValid()); + + var historic = antiMoneyLaunderingAppointees + .Where(x => !x.Period.IsValid()); + + return new AntiMoneyLaunderingAppointees + { + Current = current, + HistoricAntiMoneyLaunderingAppointees = historic + }; + } + private AntiMoneyLaundering GetAntiMoneyLaundering(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var antiMoneyLaunderingText = this.GetAntiMoneyLaunderingText(virksomhed); + var antiMoneyLaunderingActivities = this.GetAntiMoneyLaunderingActivities(virksomhed); + var isSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing = this.GetIsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing(virksomhed); + var antiMoneyLaunderingAppointees = this.GetAntiMoneyLaunderingAppointees(virksomhed); + + if (antiMoneyLaunderingText == null && !antiMoneyLaunderingActivities.Any() && !isSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing && antiMoneyLaunderingAppointees == null) + { + return null; + } + + return new AntiMoneyLaundering + { + Text = antiMoneyLaunderingText, + Activities = antiMoneyLaunderingActivities, + IsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing = isSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing, + AntiMoneyLaunderingAppointees = antiMoneyLaunderingAppointees + }; + } + private bool GetHasAudit(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return !virksomhed.Attributter + .Where(x => x.Type == AttributTyper.REVISION_FRAVALGT) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private RelationAuditors GetAuditor(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var auditors = this.GetRelations(virksomhedSummariskRelation, HovedTyper.REVISION); + + if (!auditors.Any()) + { + return null; + } + + var current = auditors + .Where(x => x.Period.IsValid()) + .Select(x => new RelationAuditor + { + RegistrationNumber = x.RegistrationNumber, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = auditors + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAuditor + { + RegistrationNumber = x.RegistrationNumber, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAuditors + { + Current = current, + HistoricAuditors = historic + }; + } + private RelationAuditors GetAuditor(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var auditors = this.GetRelations(virksomhed, HovedTyper.REVISION) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!auditors.Any()) + { + return null; + } + + var current = auditors + .Where(x => x.Period.IsValid()) + .Select(x => new RelationAuditor + { + RegistrationNumber = x.RegistrationNumber, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = auditors + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAuditor + { + RegistrationNumber = x.RegistrationNumber, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAuditors + { + Current = current, + HistoricAuditors = historic + }; + } + private Auditors GetAuditors(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var auditors = this.GetRelations(virksomhed, HovedTyper.REVISION); + + if (!auditors.Any()) + { + return null; + } + + var current = auditors + .LastOrDefault(x => x.Period.IsValid()); + + var historic = auditors + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new Auditors + { + Current = current, + HistoricAuditors = historic + }; + } + private Auditors GetSustainabilityAuditors(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var sustainabilityAuditors = this.GetRelations(virksomhed, HovedTyper.BÆREDYGTIGHEDSREVISION); + + if (!sustainabilityAuditors.Any()) + { + return null; + } + + var current = sustainabilityAuditors + .LastOrDefault(x => x.Period.IsValid()); + + var historic = sustainabilityAuditors + .Where(x => !x.Period.IsValid()); + + return new Auditors + { + Current = current, + HistoricAuditors = historic + }; + } + private bool GetIsOvertakenByFinansialStabilityAuthority(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.OVERTAGET_AF_FINANSIEL_STABILITET) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private Auditing GetAuditing(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var hasAudit = this.GetHasAudit(virksomhed); + var auditors = this.GetAuditors(virksomhed); + var sustainabilityAuditors = this.GetSustainabilityAuditors(virksomhed); + var isOvertakenByFinansialStabilityAuthority = this.GetIsOvertakenByFinansialStabilityAuthority(virksomhed); + + if (!hasAudit && auditors == null && sustainabilityAuditors == null && !isOvertakenByFinansialStabilityAuthority) + { + return null; + } + + return new Auditing + { + HasAudit = hasAudit, + Auditor = auditors, + SustainabilityAuditor = sustainabilityAuditors, + IsOvertakenByFinancialStabilityAuthority = isOvertakenByFinansialStabilityAuthority + }; + } + private string GetSignatoryRule(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.TEGNINGSREGEL) + .SelectMany(x => x.Vaerdier) + .Select(x => x.Vaerdi) + .LastOrDefault(); + } + private RelationExecutives GetExecutive(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.DIREKTION, + AttributVaerdier.DIREKTIONX, + AttributVaerdier.DIREKTØR_I_IFS, + AttributVaerdier.ADM_DIREKTØR, + AttributVaerdier.DIREKTØR, + AttributVaerdier.FILIALBESTYRERE, + AttributVaerdier.FILIALBESTYRER, + AttributVaerdier.FORVALTNINGSCHEF, + AttributVaerdier.FORRETNINGSFØRER, + AttributVaerdier.BESTYRELSE_DIREKTION + }; + + var executives = this.GetRelations(virksomhedSummariskRelation, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!executives.Any()) + { + return null; + } + + var current = executives + .Where(x => x.Period.IsValid()) + .Select(x => new RelationExecutive + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .LastOrDefault(); + + var historic = executives + .Select(x => new RelationExecutive + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationExecutives + { + Current = current, + HistoricExecutives = historic + }; + } + private RelationExecutives GetExecutive(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.DIREKTION, + AttributVaerdier.DIREKTIONX, + AttributVaerdier.DIREKTØR_I_IFS, + AttributVaerdier.ADM_DIREKTØR, + AttributVaerdier.DIREKTØR, + AttributVaerdier.FILIALBESTYRERE, + AttributVaerdier.FILIALBESTYRER, + AttributVaerdier.FORVALTNINGSCHEF, + AttributVaerdier.FORRETNINGSFØRER, + AttributVaerdier.BESTYRELSE_DIREKTION + }; + + var executives = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!executives.Any()) + { + return null; + } + + var current = executives + .Select(x => new RelationExecutive + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .LastOrDefault(x => x.Period.IsValid()); + + var historic = executives + .Select(x => new RelationExecutive + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationExecutives + { + Current = current, + HistoricExecutives = historic + }; + } + private Executives GetExecutives(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.DIREKTION, + AttributVaerdier.DIREKTIONX, + AttributVaerdier.DIREKTØR_I_IFS, + AttributVaerdier.ADM_DIREKTØR, + AttributVaerdier.DIREKTØR, + AttributVaerdier.FILIALBESTYRERE, + AttributVaerdier.FILIALBESTYRER, + AttributVaerdier.FORVALTNINGSCHEF, + AttributVaerdier.FORRETNINGSFØRER, + AttributVaerdier.BESTYRELSE_DIREKTION + }; + + var executives = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!executives.Any()) + { + return null; + } + + var current = executives + .Where(x => x.Period.IsValid()); + + var historic = executives + .Where(x => !x.Period.IsValid()); + + return new Executives + { + Current = current, + HistoricExecutives = historic + }; + } + private RelationAuthorizedSignatories GetAuthorizedSignatories(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var authorizedSignatories = this.GetRelations(virksomhedSummariskRelation, HovedTyper.TEGNINGSBERETTIGEDE); + + if (!authorizedSignatories.Any()) + { + return null; + } + + var current = authorizedSignatories + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationAuthorizedSignatory + { + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = authorizedSignatories + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAuthorizedSignatory + { + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAuthorizedSignatories + { + Current = current, + HistoricAuthorizedSignatories = historic + }; + } + private RelationAuthorizedSignatories GetAuthorizedSignatories(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var authorizedSignatories = this.GetRelations(virksomhed, HovedTyper.TEGNINGSBERETTIGEDE) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!authorizedSignatories.Any()) + { + return null; + } + + var current = authorizedSignatories + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationAuthorizedSignatory + { + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = authorizedSignatories + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAuthorizedSignatory + { + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAuthorizedSignatories + { + Current = current, + HistoricAuthorizedSignatories = historic + }; + } + private AuthorizedSignatories GetAuthorizedSignatories(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var authorizedSignatories = this.GetRelations(virksomhed, HovedTyper.TEGNINGSBERETTIGEDE); + + if (!authorizedSignatories.Any()) + { + return null; + } + + var current = authorizedSignatories + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From); + + var historic = authorizedSignatories + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new AuthorizedSignatories + { + Current = current, + HistoricAuthorizedSignatories = historic + }; + } + private RelationSpecialFinancialParticipants GetSpecialFinancialParticipants(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var specialFinancialParticipants = this.GetRelations(virksomhedSummariskRelation, HovedTyper.SÆRLIGE_FINANSIELLE_DELTAGERE); + + if (!specialFinancialParticipants.Any()) + { + return null; + } + + var current = specialFinancialParticipants + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationSpecialFinancialParticipant + { + Type = x.Type, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = specialFinancialParticipants + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationSpecialFinancialParticipant + { + Type = x.Type, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationSpecialFinancialParticipants + { + Current = current, + HistoricSpecialFinancialParticipants = historic + }; + } + private RelationSpecialFinancialParticipants GetSpecialFinancialParticipants(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var specialFinancialParticipants = this.GetRelations(virksomhed, HovedTyper.SÆRLIGE_FINANSIELLE_DELTAGERE) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!specialFinancialParticipants.Any()) + { + return null; + } + + var current = specialFinancialParticipants + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationSpecialFinancialParticipant + { + Type = x.Type, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = specialFinancialParticipants + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationSpecialFinancialParticipant + { + Type = x.Type, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationSpecialFinancialParticipants + { + Current = current, + HistoricSpecialFinancialParticipants = historic + }; + } + private SpecialFinancialParticipants GetSpecialFinancialParticipants(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var specialFinancialParticipants = this.GetRelations(virksomhed, HovedTyper.SÆRLIGE_FINANSIELLE_DELTAGERE); + + if (!specialFinancialParticipants.Any()) + { + return null; + } + + var current = specialFinancialParticipants + .Where(x => x.Period.IsValid()); + + var historic = specialFinancialParticipants + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new SpecialFinancialParticipants + { + Current = current, + HistoricSpecialFinancialParticipants = historic + }; + } + private RelationLiableParticipants GetLiableParticipants(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var liableParticipants = this.GetRelations(virksomhedSummariskRelation, HovedTyper.FULDT_ANSVARLIG_DELTAGERE); + + if (!liableParticipants.Any()) + { + return null; + } + + var current = liableParticipants + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationLiableParticipant + { + Role = x.Role, + ElectionMethod = x.ElectionMethod, + RegisteredCapital = x.RegisteredCapital, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = liableParticipants + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationLiableParticipant + { + Role = x.Role, + ElectionMethod = x.ElectionMethod, + RegisteredCapital = x.RegisteredCapital, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationLiableParticipants + { + Current = current, + HistoricLiableParticipants = historic + }; + } + private RelationLiableParticipants GetLiableParticipants(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var liableParticipants = this.GetRelations(virksomhed, HovedTyper.FULDT_ANSVARLIG_DELTAGERE) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!liableParticipants.Any()) + { + return null; + } + + var current = liableParticipants + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationLiableParticipant + { + Role = x.Role, + ElectionMethod = x.ElectionMethod, + RegisteredCapital = x.RegisteredCapital, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = liableParticipants + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationLiableParticipant + { + Role = x.Role, + ElectionMethod = x.ElectionMethod, + RegisteredCapital = x.RegisteredCapital, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationLiableParticipants + { + Current = current, + HistoricLiableParticipants = historic + }; + } + private LiableParticipants GetLiableParticipants(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var liableParticipants = this.GetRelations(virksomhed, HovedTyper.FULDT_ANSVARLIG_DELTAGERE); + + if (!liableParticipants.Any()) + { + return null; + } + + var current = liableParticipants + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From); + + var historic = liableParticipants + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new LiableParticipants + { + Current = current, + HistoricLiableParticipants = historic + }; + } + private RelationLiquidator GetLiquidator(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.LIKVIDATOR, + AttributVaerdier.LIKVIDATOR_IHT_VEDTÆGT, + AttributVaerdier.LIKVIDATOR_E_VEDTÆGT, + AttributVaerdier.LIKVDATOR + }; + + return this.GetRelations(virksomhedSummariskRelation, HovedTyper.LEDELSESORGAN, attributVærdier) + .Select(x => new RelationLiquidator + { + Title = x.Title, + AppointedBy = x.AppointedBy, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .LastOrDefault(); + } + private RelationLiquidator GetLiquidator(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.LIKVIDATOR, + AttributVaerdier.LIKVIDATOR_IHT_VEDTÆGT, + AttributVaerdier.LIKVIDATOR_E_VEDTÆGT, + AttributVaerdier.LIKVDATOR + }; + + return this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier) + .Where(x => x.ExternalId == externalId) + .Select(x => new RelationLiquidator + { + Title = x.Title, + AppointedBy = x.AppointedBy, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .LastOrDefault(); + } + private Liquidator[] GetLiquidators(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.LIKVIDATOR, + AttributVaerdier.LIKVIDATOR_IHT_VEDTÆGT, + AttributVaerdier.LIKVIDATOR_E_VEDTÆGT, + AttributVaerdier.LIKVDATOR + }; + + return this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .ToArray(); + } + private Authority GetAuthority(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var signatoryRule = this.GetSignatoryRule(virksomhed); + var executives = this.GetExecutives(virksomhed); + var authorizedSignatories = this.GetAuthorizedSignatories(virksomhed); + var specialFinancialParticipants = this.GetSpecialFinancialParticipants(virksomhed); + var otherLiableParticipants = this.GetLiableParticipants(virksomhed); + var liquidators = this.GetLiquidators(virksomhed); + + if (signatoryRule == null && executives == null && authorizedSignatories == null && specialFinancialParticipants == null && otherLiableParticipants == null && !liquidators.Any()) + { + return null; + } + + return new Authority + { + SignatoryRule = signatoryRule, + Executives = executives, + AuthorizedSignatories = authorizedSignatories, + SpecialFinancialParticipants = specialFinancialParticipants, + OtherLiableParticipants = otherLiableParticipants, + Liquidators = liquidators + }; + } + private string GetOversightAuthority(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + const string DEFAULT_AUTHORITY = "Erhvervsstyrelsen"; + + var authority = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.MYNDIGHED_ANDEN) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return authority == null + ? DEFAULT_AUTHORITY + : $"{DEFAULT_AUTHORITY}, {authority.ToStringPretty()}"; + } + private bool GetHasSocialEconomicOversight(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.SØV_IEF_TILSYN) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private bool GetHasSpecialLicensesOrConcessions(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var vaerdier = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KONCESSIONSDATO) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .MaxBy(x => x.Periode.GyldigFra); + + return vaerdier != null; + } + private string GetOversightNotes(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var notes = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.TILSYN_KATEGORI) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.ToStringPretty()) + .LastOrDefault(); + + var socialEconomicNotes = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.SØV_IEF_TILSYN_TEKST) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return notes == null || socialEconomicNotes == null + ? notes ?? socialEconomicNotes + : $"{notes}. {socialEconomicNotes}".Trim(); + } + private RelationBoardMembers GetBoardMembers(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.HOVEDBESTYRELSE, + AttributVaerdier.BESTYRELSE, + AttributVaerdier.FORMAND, + AttributVaerdier.BESTYRELSE_DIREKTION, + AttributVaerdier.DIREKTIONSSEKRETÆR + }; + + var boardMembers = this.GetRelations(virksomhedSummariskRelation, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!boardMembers.Any()) + { + return null; + } + + var current = boardMembers + .Where(x => x.Period.IsValid()) + .Select(x => new RelationBoardMember + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + AlternateFor = x.AlternateFor, + IsDirective8Approved = x.IsDirective8Approved, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = boardMembers + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationBoardMember + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + AlternateFor = x.AlternateFor, + IsDirective8Approved = x.IsDirective8Approved, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationBoardMembers + { + Current = current, + HistoricBoardMembers = historic + }; + } + private RelationBoardMembers GetBoardMembers(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.HOVEDBESTYRELSE, + AttributVaerdier.BESTYRELSE, + AttributVaerdier.FORMAND, + AttributVaerdier.BESTYRELSE_DIREKTION, + AttributVaerdier.DIREKTIONSSEKRETÆR + }; + + var boardMembers = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!boardMembers.Any()) + { + return null; + } + + var current = boardMembers + .Where(x => x.Period.IsValid()) + .Select(x => new RelationBoardMember + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + AlternateFor = x.AlternateFor, + IsDirective8Approved = x.IsDirective8Approved, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = boardMembers + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationBoardMember + { + Title = x.Title, + ElectionMethod = x.ElectionMethod, + AlternateFor = x.AlternateFor, + IsDirective8Approved = x.IsDirective8Approved, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationBoardMembers + { + Current = current, + HistoricBoardMembers = historic + }; + } + private BoardMembers GetBoardMembers(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.HOVEDBESTYRELSE, + AttributVaerdier.BESTYRELSE, + AttributVaerdier.FORMAND, + AttributVaerdier.BESTYRELSE_DIREKTION, + AttributVaerdier.DIREKTIONSSEKRETÆR + }; + + var boardMembers = this.GetRelations(virksomhed, HovedTyper.LEDELSESORGAN, attributVærdier); + + if (!boardMembers.Any()) + { + return null; + } + + var current = boardMembers + .Where(x => x.Period.IsValid()); + + var historic = boardMembers + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new BoardMembers + { + Current = current, + HistoricBoardMembers = historic + }; + } + private RelationAssociationRepresentatives GetAssociationRepresentatives(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var associationRepresentative = this.GetRelations(virksomhedSummariskRelation, HovedTyper.REPRÆSENTANTER); + + if (!associationRepresentative.Any()) + { + return null; + } + + var current = associationRepresentative + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationAssociationRepresentative + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = associationRepresentative + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAssociationRepresentative + { + Title = x.Title, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAssociationRepresentatives + { + Current = current, + HistoricAssociationRepresentatives = historic + }; + } + private RelationAssociationRepresentatives GetAssociationRepresentatives(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var associationRepresentative = this.GetRelations(virksomhed, HovedTyper.REPRÆSENTANTER) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!associationRepresentative.Any()) + { + return null; + } + + var current = associationRepresentative + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationAssociationRepresentative + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = associationRepresentative + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationAssociationRepresentative + { + Title = x.Title, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationAssociationRepresentatives + { + Current = current, + HistoricAssociationRepresentatives = historic + }; + } + private AssociationRepresentatives GetAssociationRepresentatives(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var associationRepresentative = this.GetRelations(virksomhed, HovedTyper.REPRÆSENTANTER); + + if (!associationRepresentative.Any()) + { + return null; + } + + var current = associationRepresentative + .Where(x => x.Period.IsValid()); + + var historic = associationRepresentative + .Where(x => !x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new AssociationRepresentatives + { + Current = current, + HistoricAssociationRepresentatives = historic + }; + } + private RelationFounder GetFounder(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + return this.GetRelations(virksomhedSummariskRelation, HovedTyper.STIFTERE) + .Select(x => new RelationFounder + { + RegistrationNumber = x.RegistrationNumber, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private RelationFounder GetFounder(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + if (externalId == null) + throw new ArgumentNullException(nameof(externalId)); + + return this.GetRelations(virksomhed, HovedTyper.STIFTERE) + .Where(x => x.ExternalId == externalId) + .Select(x => new RelationFounder + { + RegistrationNumber = x.RegistrationNumber, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private Founder[] GetFounders(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return this.GetRelations(virksomhed, HovedTyper.STIFTERE); + } + private Governance GetGovernance(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var boardMembers = this.GetBoardMembers(virksomhed); + var associationRepresentatives = this.GetAssociationRepresentatives(virksomhed); + var oversight = this.GetGovernanceOversight(virksomhed); + var founders = this.GetFounders(virksomhed); + + if (boardMembers == null && associationRepresentatives == null && oversight == null && founders == null) + { + return null; + } + + return new Governance + { + Oversight = oversight, + BoardMembers = boardMembers, + AssociationRepresentatives = associationRepresentatives, + Founders = founders + }; + } + private Oversight GetGovernanceOversight(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var oversightAuthority = this.GetOversightAuthority(virksomhed); + var oversightNotes = this.GetOversightNotes(virksomhed); + var hasSocialEconomicOversight = this.GetHasSocialEconomicOversight(virksomhed); + var hasSpecialLicensesOrConcessions = this.GetHasSpecialLicensesOrConcessions(virksomhed); + + if (oversightAuthority == null && oversightNotes == null && !hasSocialEconomicOversight && !hasSpecialLicensesOrConcessions) + { + return null; + } + + return new Oversight + { + Authority = oversightAuthority, + HasSocialEconomicOversight = hasSocialEconomicOversight, + HasSpecialLicensesOrConcessions = hasSpecialLicensesOrConcessions, + Notes = oversightNotes + }; + } + private bool GetHasShareClasses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.KAPITALKLASSER) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private bool GetHasOnlyUnder5PercentOwnerships(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.EJERREGISTRERING_UNDER_5_PROCENT) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi != null && x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private bool GetHasPublicShareholderRegistry(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.OFFENTLIG_EJERBOG) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private RelationLegalOwner GetLegalOwner(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.EJERREGISTER, + AttributVaerdier.EJERREGISTERX + }; + + return this.GetRelations(virksomhedSummariskRelation, HovedTyper.REGISTER, attributVærdier) + .Select(x => new RelationLegalOwner + { + RegistrationNumber = x.RegistrationNumber, + Equity = x.Equity, + VotingRights = x.VotingRights, + Notes = x.Notes, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private RelationLegalOwner GetLegalOwner(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.EJERREGISTER, + AttributVaerdier.EJERREGISTERX + }; + + return this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier) + .Where(x => x.ExternalId == externalId) + .Select(x => new RelationLegalOwner + { + RegistrationNumber = x.RegistrationNumber, + Equity = x.Equity, + VotingRights = x.VotingRights, + Notes = x.Notes, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private LegalOwner[] GetLegalOwners(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.EJERREGISTER, + AttributVaerdier.EJERREGISTERX + }; + + return this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier); + } + private RelationBeneficialOwner GetBeneficialOwner(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.REELLE_EJERE, + AttributVaerdier.REELLE_EJERER, + AttributVaerdier.REELLE_EJEREX + }; + + return this.GetRelations(virksomhedSummariskRelation, HovedTyper.REGISTER, attributVærdier) + .Select(x => new RelationBeneficialOwner + { + Equity = x.Equity, + OwnershipSpecial = x.OwnershipSpecial, + VotingRights = x.VotingRights, + CollateralVotingRights = x.CollateralVotingRights, + Notes = x.Notes, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private RelationBeneficialOwner GetBeneficialOwner(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.REELLE_EJERE, + AttributVaerdier.REELLE_EJERER, + AttributVaerdier.REELLE_EJEREX + }; + + return this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier) + .Where(x => x.ExternalId == externalId) + .Select(x => new RelationBeneficialOwner + { + Equity = x.Equity, + OwnershipSpecial = x.OwnershipSpecial, + VotingRights = x.VotingRights, + CollateralVotingRights = x.CollateralVotingRights, + Notes = x.Notes, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + } + private BeneficialOwner[] GetBeneficialOwners(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.REELLE_EJERE, + AttributVaerdier.REELLE_EJERER, + AttributVaerdier.REELLE_EJEREX + }; + + return this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier); + } + private Beneficiary GetBeneficiary(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var beneficiaryText = virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.REGISTER) + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.BEGUNSTIGET_GRUPPE) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi.ToStringPretty()))) + .LastOrDefault(); + + var legalEntitlement = virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.REGISTER) + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.BEGUNSTIGET_RETSKRAV) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi.ToStringPretty()))) + .LastOrDefault(); + + if (beneficiaryText == null && legalEntitlement == null) + { + return null; + } + + return new Beneficiary + { + Text = beneficiaryText, + LegalEntitlement = legalEntitlement + }; + } + private ParentCompany GetParentCompany(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.DeltagerRelation + .Select(x => + { + var organisation = x.Organisationer + .LastOrDefault(y => y.HovedType == HovedTyper.HOVEDSELSKAB); + + if (organisation?.EnhedsNummerOrganisation == null) + { + return null; + } + + var dateAndPeriod = organisation.MedlemsData + .SelectMany(y => y.Attributter + .Where(z => z.Type == AttributTyper.FUNKTION) + .SelectMany(z => z.Vaerdier)) + .Where(y => y.Vaerdi == AttributVaerdier.HOVEDSELSKAB && y.Periode.IsActive()) + .Select(vaerdier => new DateAndPeriod + { + Period = + { + From = vaerdier.Periode.GyldigFra + }, + UpdatedAt = vaerdier.SidstOpdateret + }) + .LastOrDefault(); + + return new ParentCompany + { + ExternalId = organisation.EnhedsNummerOrganisation, + Period = dateAndPeriod?.Period, + UpdatedAt = dateAndPeriod?.UpdatedAt + }; + }) + .LastOrDefault(x => x != null); + } + private ParentCompany[] GetHistoricParentCompanies(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.DeltagerRelation + .Select(x => + { + var organisation = x.Organisationer + .LastOrDefault(y => y.HovedType == HovedTyper.HOVEDSELSKAB); + + if (organisation?.EnhedsNummerOrganisation == null) + { + return null; + } + + var dateAndPeriod = organisation.MedlemsData + .SelectMany(y => y.Attributter + .Where(z => z.Type == AttributTyper.FUNKTION) + .SelectMany(z => z.Vaerdier)) + .Where(y => y.Vaerdi == AttributVaerdier.HOVEDSELSKAB && !y.Periode.IsActive()) + .Select(vaerdier => new DateAndPeriod + { + Period = + { + From = vaerdier.Periode.GyldigFra, + To = vaerdier.Periode.GyldigTil + }, + UpdatedAt = vaerdier.SidstOpdateret + }) + .LastOrDefault(); + + return new ParentCompany + { + ExternalId = organisation.EnhedsNummerOrganisation, + Period = dateAndPeriod?.Period, + UpdatedAt = dateAndPeriod?.UpdatedAt + }; + }) + .Where(x => x != null) + .ToArray(); + } + private MergersAndSplits[] GetMergers(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Fusioner + .Select(x => + { + var fusion = x.Indgaaende + .SelectMany(y => y.Vaerdier) + .FirstOrDefault(y => y.Vaerdi == AttributVaerdier.FUSION); + + if (fusion == null) + { + return null; + } + + return new MergersAndSplits + { + ExternalId = x.EnhedsNummerOrganisation, + Period = + { + From = fusion.Periode.GyldigFra, + To = fusion.Periode.GyldigTil + }, + UpdatedAt = fusion.SidstOpdateret + }; + }) + .Where(x => x != null) + .OrderBy(x => x.Period.From) + .ToArray(); + } + private MergersAndSplits[] GetSplits(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Spaltninger + .Select(x => + { + var spaltning = x.Indgaaende + .SelectMany(y => y.Vaerdier) + .FirstOrDefault(y => y.Vaerdi == AttributVaerdier.SPALTNING); + + if (spaltning == null) + { + return null; + } + + return new MergersAndSplits + { + ExternalId = x.EnhedsNummerOrganisation, + Period = + { + From = spaltning.Periode.GyldigFra, + To = spaltning.Periode.GyldigTil + }, + UpdatedAt = spaltning.SidstOpdateret + }; + }) + .Where(x => x != null) + .OrderBy(x => x.Period.From) + .ToArray(); + } + private Ownership GetOwnership(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var hasShareClasses = this.GetHasShareClasses(virksomhed); + var hasOnlyUnder5PercentOwnerships = this.GetHasOnlyUnder5PercentOwnerships(virksomhed); + var hasPublicShareholderRegistry = this.GetHasPublicShareholderRegistry(virksomhed); + var beneficiary = this.GetBeneficiary(virksomhed); + var parentCompanies = this.GetParentCompanies(virksomhed); + var legalOwners = this.GetLegalOwners(virksomhed); + var beneficialOwners = this.GetBeneficialOwners(virksomhed); + var mergers = this.GetMergers(virksomhed); + var splits = this.GetSplits(virksomhed); + + if (!hasShareClasses && !hasOnlyUnder5PercentOwnerships && !hasPublicShareholderRegistry && beneficiary == null && parentCompanies == null && !legalOwners.Any() && !beneficialOwners.Any() && !mergers.Any() && !splits.Any()) + { + return null; + } + + return new Ownership + { + HasShareClasses = hasShareClasses, + HasOnlyUnder5PercentOwnerships = hasOnlyUnder5PercentOwnerships, + HasPublicShareholderRegistry = hasPublicShareholderRegistry, + Beneficiary = beneficiary, + ParentCompany = parentCompanies, + LegalOwners = legalOwners, + BeneficialOwners = beneficialOwners, + Mergers = mergers, + DeMergers = splits + }; + } + private ParentCompanies GetParentCompanies(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var parentCompany = this.GetParentCompany(virksomhed); + var historicParentCompanies = this.GetHistoricParentCompanies(virksomhed); + + if (parentCompany == null && !historicParentCompanies.Any()) + { + return null; + } + + return new ParentCompanies + { + Current = parentCompany, + HistoricParentCompanies = historicParentCompanies + }; + } + private Bilaws GetBilaws(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.VEDTÆGT_SENESTE) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Bilaws + { + From = x.Periode.GyldigFra + }) + .LastOrDefault(); + } + private Bilaws[] GetHistoricBilaws(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.VEDTÆGT_SENESTE) + .SelectMany(x => x.Vaerdier) + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new Bilaws + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }) + .ToArray(); + } + private BilawsApproval GetBilawsApprovedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var authority = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.STADFÆSTET_AF) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + var date = virksomhed.Attributter + .Where(x => x.Type == AttributTyper.STADFÆSTELSESDATO) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + + if (authority == null && date == null) + { + return null; + } + + return new BilawsApproval + { + Authority = authority, + ApprovedAt = date + }; + } + private Bilawsses GetBilawses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var bilaws = this.GetBilaws(virksomhed); + var historicBilaws = this.GetHistoricBilaws(virksomhed); + var bilawsApproval = this.GetBilawsApprovedAt(virksomhed); + + if (bilaws == null && !historicBilaws.Any() && bilawsApproval == null) + { + return null; + } + + return new Bilawsses + { + Current = bilaws, + Approval = bilawsApproval, + HistoricBilaws = historicBilaws + }; + } + private AuditorRegistration GetAuditorRegistration(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributes = virksomhed.DeltagerRelation + .SelectMany(x => x.Organisationer + .Where(y => y.HovedType == HovedTyper.REGISTER) + .SelectMany(y => y.Attributter)) + .ToArray(); + + var type = attributes + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_REVISIONSVIRKSOMHEDSTYPE) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi switch + { + "PARAGRAF17_STK1" => "Paragraf 17, stk. 1", + _ => a.Vaerdi.ToStringPretty() + })) + .LastOrDefault(); + + if (type == null) + { + return null; + } + + var professionalNetwork = attributes + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_REVISIONSFAGLIGE_NETVAERK) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi.ToStringPretty())) + .LastOrDefault(); + + var publicInterest = attributes + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_PIE_SELVANGIVET) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi.ToStringPretty())) + .LastOrDefault(); + + var contactPerson = attributes + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_KONTAKTPERSON) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi)) + .LastOrDefault(); + + var isHoldingCompany = attributes + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_HOLDINGVIRKSOMHED) + .SelectMany(z => z.Vaerdier + .Where(a => a.Periode.IsActive()) + .Select(a => a.Vaerdi.TryParseBool())) + .LastOrDefault(); + + var currentCertifiedAuditors = this.GetCertifiedAuditors(virksomhed); + + return new AuditorRegistration + { + Type = type, + IsHoldingCompany = isHoldingCompany, + PublicInterest = publicInterest, + ContactPerson = contactPerson, + ProfessionalNetwork = professionalNetwork, + CertifiedAuditors = currentCertifiedAuditors + }; + } + private RelationCertifiedAuditors GetCertifiedAuditors(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var attributVærdier = new[] + { + AttributVaerdier.REVISIONSVIRKSOMHEDREGISTER, + AttributVaerdier.REVISIONSVIRKSOMHEDSTEMMEBERETTIGEDE, + AttributVaerdier.REVISIONSVIRKSOMHEDUDENLANDSKEMYNDIGHEDER + }; + + var certifiedAuditors = this.GetRelations(virksomhedSummariskRelation, HovedTyper.REGISTER, attributVærdier); + + if (!certifiedAuditors.Any()) + { + return null; + } + + var current = certifiedAuditors + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationCertifiedAuditor + { + Role = x.Role, + BusinessAddress = x.BusinessAddress, + VotingRights = x.VotingRights, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = certifiedAuditors + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationCertifiedAuditor + { + Role = x.Role, + BusinessAddress = x.BusinessAddress, + VotingRights = x.VotingRights, + EntityType = EntityType.Person, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationCertifiedAuditors + { + Current = current, + HistoricCertifiedAuditors = historic + }; + } + private RelationCertifiedAuditors GetCertifiedAuditors(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.REVISIONSVIRKSOMHEDREGISTER, + AttributVaerdier.REVISIONSVIRKSOMHEDSTEMMEBERETTIGEDE, + AttributVaerdier.REVISIONSVIRKSOMHEDUDENLANDSKEMYNDIGHEDER + }; + + var certifiedAuditors = this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier) + .Where(x => x.ExternalId == externalId) + .ToArray(); + + if (!certifiedAuditors.Any()) + { + return null; + } + + var current = certifiedAuditors + .Where(x => x.Period.IsValid()) + .OrderBy(x => x.Period.From) + .Select(x => new RelationCertifiedAuditor + { + Role = x.Role, + BusinessAddress = x.BusinessAddress, + VotingRights = x.VotingRights, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .LastOrDefault(); + + var historic = certifiedAuditors + .Where(x => !x.Period.IsValid()) + .Select(x => new RelationCertifiedAuditor + { + Role = x.Role, + BusinessAddress = x.BusinessAddress, + VotingRights = x.VotingRights, + EntityType = EntityType.Company, + Period = x.Period, + UpdatedAt = x.UpdatedAt + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To); + + return new RelationCertifiedAuditors + { + Current = current, + HistoricCertifiedAuditors = historic + }; + } + private CertifiedAuditors GetCertifiedAuditors(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var attributVærdier = new[] + { + AttributVaerdier.REVISIONSVIRKSOMHEDREGISTER, + AttributVaerdier.REVISIONSVIRKSOMHEDSTEMMEBERETTIGEDE, + AttributVaerdier.REVISIONSVIRKSOMHEDUDENLANDSKEMYNDIGHEDER + }; + + var certifiedAuditors = this.GetRelations(virksomhed, HovedTyper.REGISTER, attributVærdier); + + if (!certifiedAuditors.Any()) + { + return null; + } + + var current = certifiedAuditors + .Where(x => x.Period.IsValid()); + + var historic = certifiedAuditors + .Where(x => !x.Period.IsValid()); + + return new CertifiedAuditors + { + Current = current, + HistoricCertifiedAuditors = historic + }; + } + private List GetActiveRoles(RelationRoles relationRoles) + { + if (relationRoles == null) + throw new ArgumentNullException(nameof(relationRoles)); + + var activeRoles = new List(); + + if (relationRoles.Founder != null) + { + activeRoles + .Add(RelationType.Founder); + } + + if (relationRoles.LegalOwner != null && !relationRoles.LegalOwner.Period.To.HasValue && relationRoles.LegalOwner.Equity.Current != null) + { + activeRoles + .Add(RelationType.LegalOwner); + } + + if (relationRoles.BeneficialOwner != null && relationRoles.BeneficialOwner.Period.IsValid()) + { + activeRoles + .Add(RelationType.BeneficialOwner); + } + + if (relationRoles.Liquidator != null && relationRoles.Liquidator.Period.IsValid()) + { + activeRoles + .Add(RelationType.Liquidator); + } + + if (relationRoles.Auditors?.Current != null && relationRoles.Auditors.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.Auditor); + } + + if (relationRoles.Executives?.Current != null && relationRoles.Executives.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.Executive); + } + + if (relationRoles.BoardMembers?.Current != null && relationRoles.BoardMembers.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.BoardMember); + } + + if (relationRoles.Managers?.Current != null && relationRoles.Managers.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.Manager); + } + + if (relationRoles.AuthorizedSignatories?.Current != null && relationRoles.AuthorizedSignatories.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.AuthorizedSignatory); + } + + if (relationRoles.AntiMoneyLaunderingAppointees?.Current != null && relationRoles.AntiMoneyLaunderingAppointees.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.AntiMoneyLaunderingAppointee); + } + + if (relationRoles.SpecialFinancialParticipants?.Current != null && relationRoles.SpecialFinancialParticipants.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.SpecialFinancialParticipant); + } + + if (relationRoles.LiableParticipants?.Current != null && relationRoles.LiableParticipants.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.LiableParticipant); + } + + if (relationRoles.AssociationRepresentatives?.Current != null && relationRoles.AssociationRepresentatives.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.AssociationRepresentative); + } + + if (relationRoles.CertifiedAuditors?.Current != null && relationRoles.CertifiedAuditors.Current.Period.IsValid()) + { + activeRoles + .Add(RelationType.CertifiedAuditor); + } + + return activeRoles; + } + private List GetPersonActiveRoles(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var relationRoles = this.GetPersonRelationRoles(virksomhedSummariskRelation); + + return this.GetActiveRoles(relationRoles); + } + private RelationRoles GetPersonRelationRoles(VirksomhedSummariskRelation virksomhedSummariskRelation) + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + var founder = this.GetFounder(virksomhedSummariskRelation); + var legalOwner = this.GetLegalOwner(virksomhedSummariskRelation); + var beneficialOwner = this.GetBeneficialOwner(virksomhedSummariskRelation); + var liquidator = this.GetLiquidator(virksomhedSummariskRelation); + var auditors = this.GetAuditor(virksomhedSummariskRelation); + var executives = this.GetExecutive(virksomhedSummariskRelation); + var boardMembers = this.GetBoardMembers(virksomhedSummariskRelation); + var managers = this.GetManagers(virksomhedSummariskRelation); + var authorizedSignatories = this.GetAuthorizedSignatories(virksomhedSummariskRelation); + var antiMoneyLaunderingAppointees = this.GetAntiMoneyLaunderingAppointees(virksomhedSummariskRelation); + var specialFinancialParticipants = this.GetSpecialFinancialParticipants(virksomhedSummariskRelation); + var liableParticipants = this.GetLiableParticipants(virksomhedSummariskRelation); + var associationRepresentatives = this.GetAssociationRepresentatives(virksomhedSummariskRelation); + var certifiedAuditors = this.GetCertifiedAuditors(virksomhedSummariskRelation); + + return new RelationRoles + { + Founder = founder, + LegalOwner = legalOwner, + BeneficialOwner = beneficialOwner, + Liquidator = liquidator, + Auditors = auditors, + Executives = executives, + BoardMembers = boardMembers, + Managers = managers, + AuthorizedSignatories = authorizedSignatories, + AntiMoneyLaunderingAppointees = antiMoneyLaunderingAppointees, + SpecialFinancialParticipants = specialFinancialParticipants, + LiableParticipants = liableParticipants, + AssociationRepresentatives = associationRepresentatives, + CertifiedAuditors = certifiedAuditors + }; + } + private RelationRoles GetCompanyRelationRoles(VrVirksomhed virksomhed, string externalId) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var founder = this.GetFounder(virksomhed, externalId); + var legalOwner = this.GetLegalOwner(virksomhed, externalId); + var beneficialOwner = this.GetBeneficialOwner(virksomhed, externalId); + var liquidator = this.GetLiquidator(virksomhed, externalId); + var auditors = this.GetAuditor(virksomhed, externalId); + var executives = this.GetExecutive(virksomhed, externalId); + var boardMembers = this.GetBoardMembers(virksomhed, externalId); + var managers = this.GetManagers(virksomhed, externalId); + var authorizedSignatories = this.GetAuthorizedSignatories(virksomhed, externalId); + var antiMoneyLaunderingAppointees = this.GetAntiMoneyLaunderingAppointees(virksomhed, externalId); + var specialFinancialParticipants = this.GetSpecialFinancialParticipants(virksomhed, externalId); + var liableParticipants = this.GetLiableParticipants(virksomhed, externalId); + var associationRepresentatives = this.GetAssociationRepresentatives(virksomhed, externalId); + var certifiedAuditors = this.GetCertifiedAuditors(virksomhed, externalId); + + return new RelationRoles + { + Founder = founder, + LegalOwner = legalOwner, + BeneficialOwner = beneficialOwner, + Liquidator = liquidator, + Auditors = auditors, + Executives = executives, + BoardMembers = boardMembers, + Managers = managers, + AuthorizedSignatories = authorizedSignatories, + AntiMoneyLaunderingAppointees = antiMoneyLaunderingAppointees, + SpecialFinancialParticipants = specialFinancialParticipants, + LiableParticipants = liableParticipants, + AssociationRepresentatives = associationRepresentatives, + CertifiedAuditors = certifiedAuditors + }; + } + private ProductionUnitId[] GetActiveProductUnits(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.PEnheder + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new ProductionUnitId + { + ProductionUnitNumber = x.PNummer.ToString(), + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private ProductionUnitId[] GetHistoricProductUnits(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.PEnheder + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new ProductionUnitId + { + ProductionUnitNumber = x.PNummer.ToString(), + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private ProductionUnitCompany[] GetProductionUnitCompanies(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.VirksomhedsRelation + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new ProductionUnitCompany + { + RegistrationNumber = x.CvrNummer, + Period = + { + From = x.Periode.GyldigFra + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private ProductionUnitCompany[] GetHistoricProductionUnitCompanies(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.VirksomhedsRelation + .Where(x => !x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => new ProductionUnitCompany + { + RegistrationNumber = x.CvrNummer, + Period = + { + From = x.Periode.GyldigFra, + To = x.Periode.GyldigTil + }, + UpdatedAt = x.SidstOpdateret + }) + .ToArray(); + } + private ProductionUnits GetProductionUnitses(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + var activeProductUnits = this.GetActiveProductUnits(virksomhed); + var historicProductUnits = this.GetHistoricProductUnits(virksomhed); + + if (!activeProductUnits.Any() && !historicProductUnits.Any()) + { + return null; + } + + return new ProductionUnits + { + Current = activeProductUnits, + HistoricProductionUnits = historicProductUnits + }; + } + private ProductionUnitCompanies GetProductionUnitCompanieses(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + var currentCompanies = this.GetProductionUnitCompanies(produktionsEnhed); + var historicCompanies = this.GetHistoricProductionUnitCompanies(produktionsEnhed); + + if (!currentCompanies.Any() && !historicCompanies.Any()) + { + return null; + } + + return new ProductionUnitCompanies + { + Current = currentCompanies, + HistoricCompanies = historicCompanies + }; + } + private DateOnly? GetFoundedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.LivsForloeb + .Select(x => x.Periode.GyldigFra) + .LastOrDefault(); + } + private DateOnly? GetFoundedAt(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.LivsForloeb + .Select(x => x.Periode.GyldigFra) + .LastOrDefault(); + } + private DateOnly? GetFoundedAt(VirksomhedSummarisk virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.LivsForloeb + .Select(x => x.Periode.GyldigFra) + .LastOrDefault(); + } + private DateOnly? GetEffectiveStartedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.VirksomhedMetadata.VirkningsDato; + } + private DateOnly? GetDissolvedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.LivsForloeb + .Select(x => x.Periode.GyldigTil) + .LastOrDefault(); + } + private DateOnly? GetDissolvedAt(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.LivsForloeb + .Select(x => x.Periode.GyldigTil) + .LastOrDefault(); + } + private DateOnly? GetDissolvedAt(VirksomhedSummarisk virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.LivsForloeb + .Select(x => x.Periode.GyldigTil) + .LastOrDefault(); + } + private DateOnly? GetCommercialFundApprovedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.Attributter + .Where(x => x.Type == AttributTyper.TILLADELSESDATO_FONDSMYNDIGHED) + .SelectMany(x => x.Vaerdier) + .Where(x => x.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .Select(x => x.Vaerdi.TryParseDateOnly()) + .LastOrDefault(); + } + private bool GetIsProtectedFromAdvertisement(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.ReklameBeskyttet; + } + private bool GetIsProtectedFromAdvertisement(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.ReklameBeskyttet; + } + private EntityType GetEntityType(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.EnhedsType switch + { + EnhedsType.PERSON => EntityType.Person, + EnhedsType.VIRKSOMHED => EntityType.Company, + EnhedsType.PRODUKTIONSENHED => EntityType.ProductionUnit, + EnhedsType.ANDEN_DELTAGER => EntityType.Other, + _ => EntityType.Unknown + }; + } + private EntityType GetEntityType(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.EnhedsType switch + { + EnhedsType.PERSON => EntityType.Person, + EnhedsType.VIRKSOMHED => EntityType.Company, + EnhedsType.PRODUKTIONSENHED => EntityType.ProductionUnit, + EnhedsType.ANDEN_DELTAGER => EntityType.Other, + _ => EntityType.Unknown + }; + } + private EntityType GetEntityType(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.EnhedsType switch + { + EnhedsType.PERSON => EntityType.Person, + EnhedsType.VIRKSOMHED => EntityType.Company, + EnhedsType.PRODUKTIONSENHED => EntityType.ProductionUnit, + EnhedsType.ANDEN_DELTAGER => EntityType.Other, + _ => EntityType.Unknown + }; + } + private EntityType GetEntityType(VirksomhedSummarisk virksomhedSummarisk) + { + if (virksomhedSummarisk == null) + throw new ArgumentNullException(nameof(virksomhedSummarisk)); + + return virksomhedSummarisk.EnhedsType switch + { + EnhedsType.PERSON => EntityType.Person, + EnhedsType.VIRKSOMHED => EntityType.Company, + EnhedsType.PRODUKTIONSENHED => EntityType.ProductionUnit, + EnhedsType.ANDEN_DELTAGER => EntityType.Other, + _ => EntityType.Unknown + }; + } + private bool? GetIsHeaduarters(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.Hovedafdeling; + } + private bool? GetIsSupportingUnit(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.HjaelpeEnhed; + } + private bool? GetIsTemporary(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.Foreloebig; + } + private bool? GetHasConfidentiality(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.FortroligBeriget; + } + private Errors GetErrors(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return new Errors + { + HasImportErrors = virksomhed.FejlVedIndlaesning, + HasRegistrationErrors = virksomhed.FejlRegistreret, + Description = virksomhed.FejlBeskrivelse + }; + } + private Errors GetErrors(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return new Errors + { + HasImportErrors = produktionsEnhed.FejlVedIndlaesning, + HasRegistrationErrors = produktionsEnhed.FejlRegistreret, + Description = produktionsEnhed.FejlBeskrivelse + }; + } + private Errors GetErrors(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return new Errors + { + HasImportErrors = deltagerPerson.FejlVedIndlaesning, + HasRegistrationErrors = deltagerPerson.FejlRegistreret, + Description = deltagerPerson.FejlBeskrivelse + }; + } + private string GetExternalId(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.EnhedsNummer; + } + private string GetExternalId(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.EnhedsNummer; + } + private string GetExternalId(VirksomhedSummarisk deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.EnhedsNummer; + } + private DateTimeOffset? GetUpdatedAt(VrVirksomhed virksomhed) + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + return virksomhed.SidstOpdateret; + } + private DateTimeOffset? GetUpdatedAt(VrProduktionsEnhed produktionsEnhed) + { + if (produktionsEnhed == null) + throw new ArgumentNullException(nameof(produktionsEnhed)); + + return produktionsEnhed.SidstOpdateret; + } + private DateTimeOffset? GetUpdatedAt(VrDeltagerPerson deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.SidstOpdateret; + } + private DateTimeOffset? GetUpdatedAt(VirksomhedSummarisk deltagerPerson) + { + if (deltagerPerson == null) + throw new ArgumentNullException(nameof(deltagerPerson)); + + return deltagerPerson.SidstOpdateret; + } + private string GetKreditOplysningKodeText(long? kreditOplysningKode) + { + return kreditOplysningKode switch + { + 1 => "Konkurs", + 3 => "Tvangsakkord", + _ => null + }; + } + private string GetStatusKodeText(long? statusKode) + { + return statusKode switch + { + 1 => "Dekret", + 2 => "Ophævelse af dekret", + 3 => "Regnskab og boafslutning", + 4 => "Andre meddelelser", + 5 => "Indkaldelse til fordringsprøvelse", + 6 => "Skiftesamling", + 7 => "Andre meddelelser", + 8 => "Åbning af forhandling", + 9 => "Stadfæstelse", + _ => null + }; + } + private string GetBrancheAnsvarsKodeText(long? brancheAnsvarskode) + { + return brancheAnsvarskode switch + { + 0 => null, + 15 => "Fremstilling / industri", + 65 => "Kreditmarked og forsikring", + 75 => "Offentlig enhed / ALPOS", + 76 => "Det offentlige område", + 96 => "Særligt DST kendskab", + 97 => "Henvendelse til ESR", + 99 => "CVR - bevis", + _ => null + }; + } + private Address GetAddressOrDefault(Adresse adresse = null) + { + if (adresse == null) + { + return null; + } + + var country = adresse.LandeKode; + var cityName = adresse.PostDistrikt ?? adresse.ByNavn ?? adresse.Kommune.KommuneNavn; + var cityCode = adresse.Kommune.KommuneKode.ToString(); + var zipCode = adresse.PostNummer; + var streetName = adresse.VejNavn; + var coStreetName = adresse.CoNavn; + var postbox = adresse.Postboks; + var houseNumberFrom = adresse.HusnummerFra; + var houseNumberTo = adresse.HusnummerTil; + var letterFrom = adresse.BogstavFra; + var letterTo = adresse.BogstavTil; + var floor = adresse.Etage; + var door = adresse.SideDoer; + var period = new Period + { + From = adresse.Periode.GyldigFra, + To = adresse.Periode.GyldigTil + }; + var updateAt = adresse.SidstOpdateret; + + return new Address + { + Country = country, + City = + { + Name = cityName, + Code = cityCode, + PostalCode = zipCode + }, + StreetName = streetName, + CoStreetName = coStreetName, + Postbox = postbox, + HouseNumberFrom = houseNumberFrom, + HouseNumberTo = houseNumberTo, + LetterFrom = letterFrom, + LetterTo = letterTo, + Floor = floor, + Door = door, + Period = period, + UpdatedAt = updateAt + }; + } + private T[] GetRelations(VrVirksomhed virksomhed, string hovedType, params string[] attributVærdier) + where T : BaseRelation, new() + { + if (virksomhed == null) + throw new ArgumentNullException(nameof(virksomhed)); + + if (hovedType == null) + throw new ArgumentNullException(nameof(hovedType)); + + return virksomhed.DeltagerRelation + .Where(x => x.Organisationer + .Any(y => y.HovedType == hovedType && y.Attributter + .Any(z => z.Type == AttributTyper.FUNKTION && z.Vaerdier + .Any(a => !attributVærdier.Any() || attributVærdier + .Any(b => b == a.Vaerdi?.ToUpper()))))) + .SelectMany(x => + { + var organisation = x.Organisationer + .LastOrDefault(y => y.HovedType == hovedType && y.Attributter + .Any(z => z.Type == AttributTyper.FUNKTION && z.Vaerdier + .Any(q => !attributVærdier.Any() || attributVærdier + .Any(b => b == q.Vaerdi?.ToUpper())))); + + if (organisation == null || !organisation.MedlemsData.Any()) + { + return new List(); + } + + var relationId = this.GetRelationId(x); + var entityType = this.GetRelationEntityType(x); + var name = this.GetRelationName(x); + var address = this.GetRelationAddress(x); + + var relation = new T + { + ExternalId = relationId, + EntityType = entityType, + Name = name, + Address = address + }; + + var registrationNumber = this.GetRelationRegistrationNumber(x); + + var relations = new List(); + switch (relation) + { + case Auditor: + case Manager: + case Executive: + case BoardMember: + case AuthorizedSignatory: + case AntiMoneyLaunderingAppointee: + case SpecialFinancialParticipant: + case LiableParticipant: + case Liquidator: + case AssociationRepresentative: + case CertifiedAuditor: + { + var dateAndPeriods = this.GetRelationDateAndPeriods(organisation); + + foreach (var dateAndPeriod in dateAndPeriods) + { + relation.Period = dateAndPeriod.Period; + relation.UpdatedAt = dateAndPeriod.UpdatedAt; + + relation = this.SetRelationProperties(relation, organisation, registrationNumber); + + relations + .Add(relation); + } + + break; + } + + case Founder: + case LegalOwner: + case BeneficialOwner: + { + var dateAndPeriod = this.GetRelationDateAndPeriod(organisation, attributVærdier); + + relation.Period = dateAndPeriod.Period; + relation.UpdatedAt = dateAndPeriod.UpdatedAt; + + relation = this.SetRelationProperties(relation, organisation, registrationNumber); + + relations + .Add(relation); + + break; + } + } + + return relations; + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .ToArray(); + } + private T[] GetRelations(VirksomhedSummariskRelation virksomhedSummariskRelation, string hovedType, params string[] attributVærdier) + where T : BaseRelation, new() + { + if (virksomhedSummariskRelation == null) + throw new ArgumentNullException(nameof(virksomhedSummariskRelation)); + + if (hovedType == null) + throw new ArgumentNullException(nameof(hovedType)); + + return virksomhedSummariskRelation.Organisationer + .Where(y => y.HovedType == hovedType && y.Attributter + .Any(z => z.Type == AttributTyper.FUNKTION && z.Vaerdier + .Any(a => !attributVærdier.Any() || attributVærdier + .Any(b => b == a.Vaerdi?.ToUpper())))) + .SelectMany(x => + { + var relation = new T(); + var registrationNumber = this.GetRelationRegistrationNumber(virksomhedSummariskRelation.Virksomhed); + + var relations = new List(); + switch (relation) + { + case Auditor: + case Manager: + case Executive: + case BoardMember: + case AuthorizedSignatory: + case AntiMoneyLaunderingAppointee: + case SpecialFinancialParticipant: + case LiableParticipant: + case Liquidator: + case AssociationRepresentative: + case CertifiedAuditor: + { + var dateAndPeriods = this.GetRelationDateAndPeriods(x); + + foreach (var dateAndPeriod in dateAndPeriods) + { + relation.Period = dateAndPeriod.Period; + relation.UpdatedAt = dateAndPeriod.UpdatedAt; + + relation = this.SetRelationProperties(relation, x, registrationNumber); + + relations + .Add(relation); + } + + break; + } + + case Founder: + case LegalOwner: + case BeneficialOwner: + { + var dateAndPeriod = this.GetRelationDateAndPeriod(x, attributVærdier); + + relation.Period = dateAndPeriod.Period; + relation.UpdatedAt = dateAndPeriod.UpdatedAt; + + relation = this.SetRelationProperties(relation, x, registrationNumber); + + relations + .Add(relation); + + break; + } + } + + return relations; + }) + .OrderBy(x => x.Period.From) + .ThenBy(x => x.Period.To) + .ToArray(); + } + private T SetRelationProperties(T relation, Organisation organisation, string registrationNumber) + where T : BaseRelation, new() + { + if (relation == null) + throw new ArgumentNullException(nameof(relation)); + + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + switch (relation) + { + case Auditor auditor: + auditor.RegistrationNumber = registrationNumber; + + return auditor as T; + + case Executive executive: + executive.Title = this.GetRelationFunction(organisation, relation.Period); + + return executive as T; + + case Manager manager: + manager.Title = this.GetRelationFunction(organisation, relation.Period); + manager.ElectionMethod = this.GetRelationElectionMethod(organisation); + + return manager as T; + + case Liquidator liquidator: + liquidator.Title = this.GetRelationFunction(organisation, relation.Period); + liquidator.AppointedBy = this.GetRelationAppointedBy(organisation); + + return liquidator as T; + + case BoardMember boardMember: + boardMember.Title = this.GetRelationFunction(organisation, relation.Period); + boardMember.ElectionMethod = this.GetRelationElectionMethod(organisation); + boardMember.AlternateFor = this.GetRelationAlternateFor(organisation); + boardMember.IsDirective8Approved = this.GetRelationIsDirective8Approved(organisation); + + return boardMember as T; + + case AuthorizedSignatory authorizedSignatory: + return authorizedSignatory as T; + + case AntiMoneyLaunderingAppointee antiMoneyLaunderingOfficer: + antiMoneyLaunderingOfficer.Title = this.GetRelationFunction(organisation, relation.Period); + + return antiMoneyLaunderingOfficer as T; + + case LiableParticipant liableParticipant: + liableParticipant.Role = this.GetRelationFunction(organisation, relation.Period); + liableParticipant.RegisteredCapital = this.GetRelationRegisteredCapital(organisation); + + return liableParticipant as T; + + case SpecialFinancialParticipant specialFinancialParticipant: + specialFinancialParticipant.Type = this.GetRelationFunction(organisation, relation.Period); + + return specialFinancialParticipant as T; + + case AssociationRepresentative associationRepresentative: + associationRepresentative.Title = this.GetRelationFunction(organisation, relation.Period); + + return associationRepresentative as T; + + case Founder founder: + founder.RegistrationNumber = registrationNumber; + + return founder as T; + + case LegalOwner legalOwner: + legalOwner.RegistrationNumber = registrationNumber; + legalOwner.Equity = this.GetRelationOwnershipPercentage(organisation); + legalOwner.VotingRights = this.GetRelationVotingRightsPercentage(organisation); + + return legalOwner as T; + + case BeneficialOwner beneficialOwner: + beneficialOwner.Equity = this.GetRelationOwnershipPercentage(organisation); + beneficialOwner.VotingRights = this.GetRelationVotingRightsPercentage(organisation); + beneficialOwner.CollateralVotingRights = this.GetRelationCollateralVotingRightsPercentage(organisation); + beneficialOwner.OwnershipSpecial = this.GetRelationOwnershipSpecial(organisation); + beneficialOwner.Notes = this.GetRelationOwnershipNotes(organisation); + + return beneficialOwner as T; + + case CertifiedAuditor certifiedAuditor: + certifiedAuditor.Role = this.GetRelationFunction(organisation, relation.Period); + certifiedAuditor.BusinessAddress = this.GetRelationBusinessAddress(organisation); + certifiedAuditor.VotingRights = this.GetRelationCertifiedAuditorVotingRights(organisation); + + return certifiedAuditor as T; + + default: + return relation; + } + } + private EntityType GetRelationEntityType(DeltagerRelation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return deltagerRelation.Deltager.EnhedsType switch + { + EnhedsType.PERSON => EntityType.Person, + EnhedsType.VIRKSOMHED => EntityType.Company, + EnhedsType.PRODUKTIONSENHED => EntityType.ProductionUnit, + EnhedsType.ANDEN_DELTAGER => EntityType.Other, + _ => EntityType.Unknown + }; + } + private string GetRelationId(DeltagerRelation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return deltagerRelation.Deltager.EnhedsNummer; + } + private string GetRelationName(DeltagerRelation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return + deltagerRelation.Deltager.Navne + .Where(x => x.Periode.IsActive()) + .Select(x => x.Navn) + .LastOrDefault() ?? + deltagerRelation.Deltager.Navne + .Select(x => x.Navn) + .LastOrDefault(); + } + private Address GetRelationAddress(DeltagerRelation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + var address = deltagerRelation.Deltager.BeliggenhedsAdresse + .Where(x => x.Periode.IsActive()) + .Select(this.GetAddressOrDefault) + .LastOrDefault(); + + if (address == null) + { + return null; + } + + address.IsUnlisted = deltagerRelation.Deltager.AdresseHemmelig; + address.IsAddressValidationDiscontinued = deltagerRelation.Deltager.AdresseOpdateringOphoert; + + return address; + } + private DateAndPeriod GetRelationDateAndPeriod(Organisation organisation, params string[] attributVærdier) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + if (attributVærdier == null) + throw new ArgumentNullException(nameof(attributVærdier)); + + return this.GetRelationDateAndPeriods(organisation) + .LastOrDefault() ?? + organisation.Attributter + .SelectMany(z => z.Vaerdier) + .Where(x => !attributVærdier.Any() || attributVærdier + .Any(y => y == x.Vaerdi.ToUpper())) + .Select(z => new DateAndPeriod + { + Period = + { + From = z.Periode.GyldigFra, + To = z.Periode.GyldigTil + }, + UpdatedAt = z.SidstOpdateret + }) + .LastOrDefault(); + } + private IEnumerable GetRelationDateAndPeriods(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + return organisation.MedlemsData + .SelectMany(q => q.Attributter + .Where(a => a.Type == AttributTyper.FUNKTION) + .SelectMany(z => z.Vaerdier)) + .Select(z => new DateAndPeriod + { + Period = + { + From = z.Periode.GyldigFra, + To = z.Periode.GyldigTil + }, + UpdatedAt = z.SidstOpdateret + }) + .DistinctBy(x => new + { + x.Period.From, + x.Period.To + }); + } + private string GetRelationRegistrationNumber(DeltagerRelation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return deltagerRelation.Deltager.ForretningsNoegle; + } + private string GetRelationRegistrationNumber(VirksomhedSummarisk virksomhedSummarisk) + { + if (virksomhedSummarisk == null) + throw new ArgumentNullException(nameof(virksomhedSummarisk)); + + return virksomhedSummarisk.CvrNummer; + } + private string GetRelationFunction(Organisation organisation, Period period) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var function = organisation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.FUNKTION) + .SelectMany(z => z.Vaerdier) + .Where(z => z.Periode.GyldigFra == period.From && z.Periode.GyldigTil == period.To) + .Select(z => z.Vaerdi switch + { + "ADM. DIR." => "Adm. Direktør", + "RevisionsvirksomhedLedelse" => "Revisionsvirksomhed Ledelse", + "RevisionsvirksomhedLeder" => "Revisionsvirksomhed Leder", + "RevisionsvirksomhedStemmeberettiget" => "Revisionsvirksomhed Stemmeberettiget", + _ => z.Vaerdi?.ToStringPretty() + })) + .Aggregate(string.Empty, (current, x) => current + $"{x}, ") + .Trim(); + + return function.EndsWith(',') + ? function[..^1] + : function; + } + private string GetRelationAppointedBy(Organisation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return deltagerRelation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.UDNÆVNT_AF) + .SelectMany(z => z.Vaerdier)) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + } + private string GetRelationElectionMethod(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + return organisation.MedlemsData + .SelectMany(q => q.Attributter + .SelectMany(z => z.Vaerdier)) + .Where(z => z.Vaerdi == AttributTyper.VALGFORM) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + } + private string GetRelationAlternateFor(Organisation deltagerRelation) + { + if (deltagerRelation == null) + throw new ArgumentNullException(nameof(deltagerRelation)); + + return deltagerRelation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.SUPPLEANT_FOR_DELTAGER_NR) + .SelectMany(z => z.Vaerdier)) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + } + private RegisteredCapital GetRelationRegisteredCapital(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var capital = organisation.MedlemsData + .SelectMany(x => x.Attributter) + .Where(x => x.Vaerdier.Any(y => y.Periode.IsActive())) + .Where(x => x.Type == AttributTyper.KOMPLEMENTAR_INDSKUDSKAPITAL) + .SelectMany(x => x.Vaerdier) + .MaxBy(x => x.Periode.GyldigFra); + + if (capital == null) + { + return null; + } + + var currency = organisation.MedlemsData + .SelectMany(x => x.Attributter) + .Where(x => x.Vaerdier.Any(y => y.Periode.IsActive())) + .Where(x => x.Type == AttributTyper.KOMPLEMENTAR_INDSKUDSVALUTA) + .SelectMany(x => x.Vaerdier) + .Select(x => x.Vaerdi) + .LastOrDefault(); + + return new RegisteredCapital + { + Value = capital.Vaerdi?.TryParseDouble(DanishCvrService.numberFormatInfo), + Currency = currency, + Period = + { + From = capital.Periode.GyldigFra + }, + UpdatedAt = capital.SidstOpdateret + }; + } + private bool? GetRelationIsDirective8Approved(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + return organisation.MedlemsData + .SelectMany(x => x.Attributter + .Where(y => y.Type == AttributTyper.REVISOR_REGISTRERING_GODKENDT_8DIREKTIV) + .SelectMany(y => y.Vaerdier)) + .Where(x => x.Periode.IsActive()) + .Select(x => x.Vaerdi.TryParseBool()) + .LastOrDefault(); + } + private Equity GetRelationOwnershipPercentage(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var ownership = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .LastOrDefault(x => x.Type == AttributTyper.EJERANDEL_PROCENT); + + if (ownership == null) + { + return null; + } + + var currentOwnership = ownership.Vaerdier + .LastOrDefault(y => y.Periode.IsActive()); + + var historicOwnerships = ownership.Vaerdier + .Where(y => !y.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var datoOgPeriode = historicOwnerships + .Where(x => x.Periode.GyldigTil.HasValue) + .Select(x => new DatoOgPeriode + { + Periode = x.Periode, + SidstOpdateret = x.SidstOpdateret + }) + .LastOrDefault(); + + Vaerdier shareClass = null; + if (currentOwnership != null) + { + shareClass = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .Where(x => x.Type == AttributTyper.EJERANDEL_KAPITALKLASSE) + .SelectMany(x => x.Vaerdier) + .LastOrDefault(x => x.Periode.IsActive() && x.Periode.GyldigFra == currentOwnership.Periode.GyldigFra && x.Periode.GyldigTil == currentOwnership.Periode.GyldigTil); + } + + var historicShareClasses = historicOwnerships + .Select(x => organisation.MedlemsData + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.EJERANDEL_KAPITALKLASSE) + .SelectMany(y => y.Vaerdier) + .Where(y => y.Periode.IsActive() && y.Periode.GyldigFra == x.Periode.GyldigFra && y.Periode.GyldigTil == x.Periode.GyldigTil) + .LastOrDefault(y => !y.Periode.IsActive())) + .ToArray(); + + return new Equity + { + Current = new Share + { + ShareClass = shareClass?.Vaerdi, + SharePercentage = currentOwnership == null + ? 0.00D + : currentOwnership.Vaerdi.TryParseDouble(DanishCvrService.numberFormatInfo), + Period = + { + From = currentOwnership?.Periode.GyldigFra ?? datoOgPeriode?.Periode.GyldigTil?.AddDays(1) + }, + UpdatedAt = currentOwnership?.SidstOpdateret ?? datoOgPeriode?.SidstOpdateret + }, + HistoricValues = historicOwnerships + .Select((y, i) => new Share + { + ShareClass = historicShareClasses.ElementAtOrDefault(i)?.Vaerdi, + SharePercentage = double.Parse(y.Vaerdi, DanishCvrService.numberFormatInfo), + Period = + { + From = y.Periode.GyldigFra, + To = y.Periode.GyldigTil + }, + UpdatedAt = y.SidstOpdateret + }) + }; + } + private VotingRights GetRelationVotingRightsPercentage(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var votingRights = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .LastOrDefault(x => x.Type == AttributTyper.EJERANDEL_STEMMERET_PROCENT); + + if (votingRights == null) + { + return null; + } + + var currentVotingRights = votingRights.Vaerdier + .LastOrDefault(y => y.Periode.IsActive()); + + var historicVotingRights = votingRights.Vaerdier + .Where(y => !y.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var datoOgPeriode = historicVotingRights + .Where(x => x.Periode.GyldigTil.HasValue) + .Select(x => new DatoOgPeriode + { + Periode = x.Periode, + SidstOpdateret = x.SidstOpdateret + }) + .LastOrDefault(); + + return new VotingRights + { + Current = new Votes + { + Value = currentVotingRights == null + ? 0.00D + : currentVotingRights.Vaerdi.TryParseDouble(DanishCvrService.numberFormatInfo), + Period = + { + From = currentVotingRights?.Periode.GyldigFra ?? datoOgPeriode?.Periode.GyldigTil?.AddDays(1) + }, + UpdatedAt = currentVotingRights?.SidstOpdateret ?? datoOgPeriode?.SidstOpdateret + }, + HistoricValues = historicVotingRights + .Select(y => new Votes + { + Value = double.Parse(y.Vaerdi, DanishCvrService.numberFormatInfo), + Period = + { + From = y.Periode.GyldigFra, + To = y.Periode.GyldigTil + }, + UpdatedAt = y.SidstOpdateret + }) + }; + } + private VotingRights GetRelationCollateralVotingRightsPercentage(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var votingRights = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .LastOrDefault(x => x.Type == AttributTyper.EJERANDEL_SOM_PANT_STEMMERET_PROCENT); + + if (votingRights == null) + { + return null; + } + + var currentVotingRights = votingRights.Vaerdier + .LastOrDefault(y => y.Periode.IsActive()); + + var historicVotingRights = votingRights.Vaerdier + .Where(y => !y.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var datoOgPeriode = historicVotingRights + .Where(x => x.Periode.GyldigTil.HasValue) + .Select(x => new DatoOgPeriode + { + Periode = x.Periode, + SidstOpdateret = x.SidstOpdateret + }) + .LastOrDefault(); + + return new VotingRights + { + Current = new Votes + { + Value = currentVotingRights == null + ? 0.00D + : currentVotingRights.Vaerdi.TryParseDouble(DanishCvrService.numberFormatInfo), + Period = + { + From = currentVotingRights?.Periode.GyldigFra ?? datoOgPeriode?.Periode.GyldigTil?.AddDays(1) + }, + UpdatedAt = currentVotingRights?.SidstOpdateret ?? datoOgPeriode?.SidstOpdateret + }, + HistoricValues = historicVotingRights + .Select(y => new Votes + { + Value = double.Parse(y.Vaerdi, DanishCvrService.numberFormatInfo), + Period = + { + From = y.Periode.GyldigFra, + To = y.Periode.GyldigTil + }, + UpdatedAt = y.SidstOpdateret + }) + }; + } + private OwnershipSpecials GetRelationOwnershipSpecial(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var ownershipSpecial = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .LastOrDefault(x => x.Type == AttributTyper.SÆRLIGE_EJERFORHOLD); + + if (ownershipSpecial == null) + { + return null; + } + + var currentOwnershipSpecial = ownershipSpecial.Vaerdier + .LastOrDefault(y => y.Periode.IsActive()); + + var historicOwnershipSpecial = ownershipSpecial.Vaerdier + .Where(y => !y.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var datoOgPeriode = historicOwnershipSpecial + .Where(x => x.Periode.GyldigTil.HasValue) + .Select(x => new DatoOgPeriode + { + Periode = x.Periode, + SidstOpdateret = x.SidstOpdateret + }) + .LastOrDefault(); + + Vaerdier ownershipSpecialDescription = null; + if (currentOwnershipSpecial != null) + { + ownershipSpecialDescription = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .Where(x => x.Type == AttributTyper.SÆRLIGE_EJERFORHOLD_BESKRIVELSE) + .SelectMany(x => x.Vaerdier) + .LastOrDefault(x => x.Periode.IsActive() && x.Periode.GyldigFra == currentOwnershipSpecial.Periode.GyldigFra && x.Periode.GyldigTil == currentOwnershipSpecial.Periode.GyldigTil); + } + + var historicOwnershipSpecialDescriptions = historicOwnershipSpecial + .Select(x => organisation.MedlemsData + .SelectMany(y => y.Attributter) + .Where(y => y.Type == AttributTyper.SÆRLIGE_EJERFORHOLD_BESKRIVELSE) + .SelectMany(y => y.Vaerdier) + .Where(y => y.Periode.IsActive() && y.Periode.GyldigFra == x.Periode.GyldigFra && y.Periode.GyldigTil == x.Periode.GyldigTil) + .LastOrDefault(y => !y.Periode.IsActive())) + .ToArray(); + + return new OwnershipSpecials + { + Current = new OwnershipSpecial + { + Value = currentOwnershipSpecial?.Vaerdi, + Notes = ownershipSpecialDescription?.Vaerdi, + Period = + { + From = currentOwnershipSpecial?.Periode.GyldigFra ?? datoOgPeriode?.Periode.GyldigTil?.AddDays(1) + }, + UpdatedAt = currentOwnershipSpecial?.SidstOpdateret ?? datoOgPeriode?.SidstOpdateret + }, + HistoricValues = historicOwnershipSpecial + .Select((y, i) => new OwnershipSpecial + { + Value = y.Vaerdi, + Notes = historicOwnershipSpecialDescriptions.ElementAtOrDefault(i)?.Vaerdi, + Period = + { + From = y.Periode.GyldigFra, + To = y.Periode.GyldigTil + }, + UpdatedAt = y.SidstOpdateret + }) + }; + } + private string GetRelationOwnershipNotes(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var notes = organisation.MedlemsData + .SelectMany(x => x.Attributter) + .Where(x => x.Vaerdier.Any(y => y.Periode.IsActive())) + .Where(x => x.Type == AttributTyper.BETYDELIG_INDFLYDELSE_VIA_ROLLE) + .SelectMany(x => x.Vaerdier) + .OrderBy(x => x.Periode.GyldigFra) + .Aggregate("", (current, x) => $"{current}{x.Vaerdi}. ") + .Trim(); + + if (string.IsNullOrEmpty(notes)) + { + return null; + } + + return notes; + } + private string GetRelationBusinessAddress(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + return organisation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.FORRETNINGSADRESSE) + .SelectMany(z => z.Vaerdier)) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + } + private AuditorVotingRights GetRelationCertifiedAuditorVotingRights(Organisation organisation) + { + if (organisation == null) + throw new ArgumentNullException(nameof(organisation)); + + var votingRights = organisation.MedlemsData + .SelectMany(y => y.Attributter) + .LastOrDefault(x => x.Type == AttributTyper.REVISOR_REGISTRERING_STEMMEANDEL_PROCENT); + + var currentVotingRights = votingRights?.Vaerdier + .LastOrDefault(y => y.Periode.IsActive()); + + var historicVotingRights = votingRights?.Vaerdier + .Where(y => !y.Periode.IsActive()) + .OrderBy(x => x.Periode.GyldigFra) + .ToArray(); + + var datoOgPeriode = historicVotingRights? + .Where(x => x.Periode.GyldigTil.HasValue) + .Select(x => new DatoOgPeriode + { + Periode = x.Periode, + SidstOpdateret = x.SidstOpdateret + }) + .LastOrDefault(); + + var type = organisation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERTYPE) + .SelectMany(z => z.Vaerdier)) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + + var exception = organisation.MedlemsData + .SelectMany(q => q.Attributter + .Where(z => z.Type == AttributTyper.REVISOR_REGISTRERING_STEMMEANDEL_INDEHAVERUNDTAGELSE) + .SelectMany(z => z.Vaerdier)) + .Select(z => z.Vaerdi?.ToStringPretty()) + .LastOrDefault(); + + return new AuditorVotingRights + { + Type = type, + Exception = exception, + Current = new Votes + { + Value = currentVotingRights?.Vaerdi?.TryParseDouble(DanishCvrService.numberFormatInfo) ?? 0.00D, + Period = + { + From = currentVotingRights?.Periode.GyldigFra ?? datoOgPeriode?.Periode.GyldigTil?.AddDays(1) + }, + UpdatedAt = currentVotingRights?.SidstOpdateret ?? datoOgPeriode?.SidstOpdateret + }, + HistoricValues = historicVotingRights? + .Select(y => new Votes + { + Value = double.Parse(y.Vaerdi, DanishCvrService.numberFormatInfo), + Period = + { + From = y.Periode.GyldigFra, + To = y.Periode.GyldigTil + }, + UpdatedAt = y.SidstOpdateret + }) ?? new List() + }; + } + + private string GetDebugRawJson(object obj) + { + if (obj == null) + throw new ArgumentNullException(nameof(obj)); + + if (Debugger.IsAttached) + { + return JsonConvert.SerializeObject(obj, Formatting.Indented, DanishCvrService.jsonSerializerSettings); + } + + if (this.options.IncludeRawJson) + { + return JsonConvert.SerializeObject(obj, Formatting.None, DanishCvrService.jsonSerializerSettings); + } + + return null; + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/AssemblyExtensions.cs b/DanishCvr/Extensions/AssemblyExtensions.cs new file mode 100644 index 0000000..362a347 --- /dev/null +++ b/DanishCvr/Extensions/AssemblyExtensions.cs @@ -0,0 +1,56 @@ +using Newtonsoft.Json; +using System; +using System.IO; +using System.Reflection; +using System.Threading; +using System.Threading.Tasks; + +namespace DanishCvr.Extensions; + +/// +/// Assembly Extensions. +/// +public static class AssemblyExtensions +{ + /// + /// Get Resource. + /// + /// The resource + /// The . + /// The name. + /// The json deserialized to type T. + public static T GetJsonResource(this Assembly assembly, string name) + { + var resourceContents = assembly + .GetResource(name) + .GetAwaiter() + .GetResult(); + + return JsonConvert.DeserializeObject(resourceContents); + } + + /// + /// Get Resource. + /// + /// The . + /// The name of the resource. + /// The . + /// The resource contents. + public static async Task GetResource(this Assembly assembly, string name, CancellationToken cancellationToken = default) + { + if (name == null) + throw new ArgumentNullException(nameof(name)); + + await using var stream = assembly.GetManifestResourceStream(name); + + if (stream == null) + { + throw new NullReferenceException(nameof(stream)); + } + + using var reader = new StreamReader(stream); + + return await reader + .ReadToEndAsync(cancellationToken); + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/Serialization/Converters/NullableDateOnlyJsonConverter.cs b/DanishCvr/Extensions/Serialization/Converters/NullableDateOnlyJsonConverter.cs new file mode 100644 index 0000000..a3a68ca --- /dev/null +++ b/DanishCvr/Extensions/Serialization/Converters/NullableDateOnlyJsonConverter.cs @@ -0,0 +1,46 @@ +using System; +using Newtonsoft.Json; + +namespace DanishCvr.Extensions.Serialization.Converters; + +/// +/// Nullable Date Only Json Converter. +/// +public class NullableDateOnlyJsonConverter : JsonConverter +{ + /// + public override void WriteJson(JsonWriter writer, DateOnly? value, JsonSerializer serializer) + { + if (writer == null) + throw new ArgumentNullException(nameof(writer)); + + if (serializer == null) + throw new ArgumentNullException(nameof(serializer)); + + if (value.HasValue) + { + writer + .WriteValue(value.Value); + } + else + { + writer + .WriteNull(); + } + } + + /// + public override DateOnly? ReadJson(JsonReader reader, Type objectType, DateOnly? existingValue, bool hasExistingValue, JsonSerializer serializer) + { + var dateOnlyString = reader.Value?.ToString(); + + var success = DateOnly.TryParse(dateOnlyString, out var dateOnly); + + if (success) + { + return dateOnly; + } + + return null; + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/Serialization/Converters/NullableDateTimeOffsetJsonConverter.cs b/DanishCvr/Extensions/Serialization/Converters/NullableDateTimeOffsetJsonConverter.cs new file mode 100644 index 0000000..ea59573 --- /dev/null +++ b/DanishCvr/Extensions/Serialization/Converters/NullableDateTimeOffsetJsonConverter.cs @@ -0,0 +1,40 @@ +using System; +using Newtonsoft.Json; + +namespace DanishCvr.Extensions.Serialization.Converters; + +/// +/// Nullable Date Time Offset Json Converter. +/// +public class NullableDateTimeOffsetJsonConverter : JsonConverter +{ + /// + public override void WriteJson(JsonWriter writer, DateTimeOffset? value, JsonSerializer serializer) + { + if (value.HasValue) + { + writer + .WriteValue(value.Value); + } + else + { + writer + .WriteNull(); + } + } + + /// + public override DateTimeOffset? ReadJson(JsonReader reader, Type objectType, DateTimeOffset? existingValue, bool hasExistingValue, JsonSerializer serializer) + { + var dateTimeOffsetString = reader.Value?.ToString(); + + var success = DateTimeOffset.TryParse(dateTimeOffsetString, out var dateTimeOffset); + + if (success) + { + return dateTimeOffset; + } + + return null; + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/Serialization/CustomElasticSearchSerializer.cs b/DanishCvr/Extensions/Serialization/CustomElasticSearchSerializer.cs new file mode 100644 index 0000000..3c4c778 --- /dev/null +++ b/DanishCvr/Extensions/Serialization/CustomElasticSearchSerializer.cs @@ -0,0 +1,105 @@ +using System; +using System.IO; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Elasticsearch.Net; +using DanishCvr.Extensions.Serialization.Converters; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace DanishCvr.Extensions.Serialization; + +/// +/// Custom Elastic Search Serializer. +/// +public class CustomElasticSearchSerializer : IElasticsearchSerializer +{ + private readonly JsonSerializer jsonSerializer = new() + { + NullValueHandling = NullValueHandling.Ignore, + Converters = + { + new StringEnumConverter(), + new NullableDateOnlyJsonConverter(), + new NullableDateTimeOffsetJsonConverter() + } + }; + + /// + public object Deserialize(Type type, Stream stream) + { + if (type == null) + throw new ArgumentNullException(nameof(type)); + + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + using var streamReader = new StreamReader(stream); + + using var jsonReader = new JsonTextReader(streamReader); + + return this.jsonSerializer + .Deserialize(jsonReader, type); + } + + /// + public T Deserialize(Stream stream) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + return (T)this.Deserialize(typeof(T), stream); + } + + /// + public Task DeserializeAsync(Type type, Stream stream, CancellationToken cancellationToken = default) + { + if (type == null) + throw new ArgumentNullException(nameof(type)); + + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + throw new NotImplementedException(); + } + + /// + public Task DeserializeAsync(Stream stream, CancellationToken cancellationToken = default) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + throw new NotImplementedException(); + } + + /// + public void Serialize(T data, Stream stream, SerializationFormatting formatting = SerializationFormatting.None) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + using var streamWriter = new StreamWriter(stream, new UTF8Encoding(false), 1024, leaveOpen: true); + + using var jsonWriter = new JsonTextWriter(streamWriter); + + jsonWriter.Formatting = formatting == SerializationFormatting.Indented + ? Formatting.Indented + : Formatting.None; + + this.jsonSerializer + .Serialize(jsonWriter, data); + + jsonWriter + .Flush(); + } + + /// + public Task SerializeAsync(T data, Stream stream, SerializationFormatting formatting = SerializationFormatting.Indented, CancellationToken cancellationToken = default) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/ServiceCollectionExtensions.cs b/DanishCvr/Extensions/ServiceCollectionExtensions.cs new file mode 100644 index 0000000..2f38ae4 --- /dev/null +++ b/DanishCvr/Extensions/ServiceCollectionExtensions.cs @@ -0,0 +1,78 @@ +using System; +using System.Diagnostics; +using Elasticsearch.Net; +using DanishCvr.Extensions.Serialization; +using DanishCvr.Interfaces; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Nest; + +namespace DanishCvr.Extensions; + +/// +/// Service Collection Extensions. +/// +public static class ServiceCollectionExtensions +{ + private const string HOST = "http://distribution.virk.dk/"; + + /// + /// Add Danish Cvr. + /// + /// The . + /// The . + public static IServiceCollection AddDanishCvr(this IServiceCollection services) + { + if (services == null) + throw new ArgumentNullException(nameof(services)); + + services + .AddConfigOptions(DanishCvrOptions.SECTION_NAME, out var options); + + var connectionPool = new SingleNodeConnectionPool(new Uri(HOST)); + var connectionSettings = new ConnectionSettings(connectionPool, (_, _) => new CustomElasticSearchSerializer()); + + connectionSettings + .BasicAuthentication(options.Username, options.Password) + .RequestTimeout(options.RequestTimeout) + .ThrowExceptions(); + + if (Debugger.IsAttached) + { + connectionSettings + .DisableDirectStreaming() + .PrettyJson(); + } + + services + .AddSingleton(_ => new ElasticClient(connectionSettings)); + + services + .AddSingleton() + .AddSingleton(); + + return services; + } + + private static IServiceCollection AddConfigOptions(this IServiceCollection services, string name, out TOption options) + where TOption : class, new() + { + if (services == null) + throw new ArgumentNullException(nameof(services)); + + if (name == null) + throw new ArgumentNullException(nameof(name)); + + var provider = services.BuildServiceProvider(); + var configuration = provider.GetRequiredService(); + var section = configuration.GetSection(name); + + options = section.Get() ?? new TOption(); + + services + .AddSingleton(options) + .Configure(section); + + return services; + } +} \ No newline at end of file diff --git a/DanishCvr/Extensions/StringExtensions.cs b/DanishCvr/Extensions/StringExtensions.cs new file mode 100644 index 0000000..af4541d --- /dev/null +++ b/DanishCvr/Extensions/StringExtensions.cs @@ -0,0 +1,120 @@ +using System; +using System.Globalization; +using DanishCvr.Responses.Models; + +namespace DanishCvr.Extensions; + +/// +/// String Extensions. +/// +public static class StringExtensions +{ + /// + /// To String Pretty. + /// Formatted with lowercase, and first word capitalized. + /// + /// The input + /// The pretty string. + public static string ToStringPretty(this string input) + { + if (input == null) + throw new ArgumentNullException(nameof(input)); + + input = input + .Replace('_', ' ') + .Trim() + .ToLower(); + + if (string.IsNullOrEmpty(input)) + { + return null; + } + + return char.ToUpper(input[0]) + input[1..]; + } + + /// + /// Get Year And Month. + /// + /// The input. + /// The . + public static MonthAndDay GetYearAndMonth(this string input) + { + if (input == null) + throw new ArgumentNullException(nameof(input)); + + var parts = input[1..].Split('-'); + + if (string.IsNullOrEmpty(input) || input[0] != '-' || parts.Length != 3) + { + return null; + } + + var successMonth = int.TryParse(parts[1], out var month); + var successDay = int.TryParse(parts[2], out var day); + + if (successDay && successMonth) + { + return new MonthAndDay + { + Month = month, + Day = day + }; + } + + return null; + } + + /// + /// Try Parse Bool. + /// + /// The input. + /// The . + public static bool TryParseBool(this string input) + { + if (input == null) + throw new ArgumentNullException(nameof(input)); + + var success = bool.TryParse(input, out var @bool); + + return success && @bool; + } + + /// + /// Try Parse Double. + /// + /// The input. + /// The . + /// The . + public static double TryParseDouble(this string input, NumberFormatInfo numberFormatInfo) + { + if (input == null) + throw new ArgumentNullException(nameof(input)); + + var success = double.TryParse(input, numberFormatInfo, out var @double); + + if (success) + { + return @double; + } + + return 0.00D; + } + + /// + /// Try Parse Date Only. + /// + /// The input. + /// The . + public static DateOnly? TryParseDateOnly(this string input) + { + if (input == null) + throw new ArgumentNullException(nameof(input)); + + var success = DateOnly.TryParse(input, out var dateOnly); + + return success + ? dateOnly + : null; + } +} \ No newline at end of file diff --git a/DanishCvr/Helpers/PostalCodes.cs b/DanishCvr/Helpers/PostalCodes.cs new file mode 100644 index 0000000..f767807 --- /dev/null +++ b/DanishCvr/Helpers/PostalCodes.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DanishCvr.Extensions; +using DanishCvr.Responses.Models; +using DanishCvr.Types; +using NetTopologySuite.Geometries; + +namespace DanishCvr.Helpers; + +/// +/// Postal Codes. +/// +public static class PostalCodes +{ + private static readonly IEnumerable postalCodes; + + static PostalCodes() + { + var assembly = typeof(PostalCodes).Assembly; + + PostalCodes.postalCodes = assembly + .GetJsonResource>("DanishCvr.Resources.postnumre.json"); + } + + /// + /// Get Postal Codes. + /// + /// The list of zip codes. + public static IEnumerable GetPostalCodes() + { + return PostalCodes.postalCodes; + } + + /// + /// Get Postal Codes Within. + /// + /// The + /// The matching zip codes. + public static IEnumerable GetPostalCodesWithin(Within within) + { + if (within == null) + throw new ArgumentNullException(nameof(within)); + + var bufferInDegrees = within.Radius / 111000.00D; + var geometryFactory = new GeometryFactory(); + + var searchPoint = geometryFactory + .CreatePoint(new Coordinate(within.Location.Longitude, within.Location.Latitude)); + + var searchArea = searchPoint + .Buffer(bufferInDegrees); + + return postalCodes + .Where(p => + { + var linearRing = new[] + { + new Coordinate(p.Bbox[0], p.Bbox[1]), + new Coordinate(p.Bbox[2], p.Bbox[1]), + new Coordinate(p.Bbox[2], p.Bbox[3]), + new Coordinate(p.Bbox[0], p.Bbox[3]), + new Coordinate(p.Bbox[0], p.Bbox[1]) + }; + + var bboxPolygon = geometryFactory + .CreatePolygon(linearRing); + + return searchArea + .Intersects(bboxPolygon); + }) + .Select(x => x.Nr); + } +} \ No newline at end of file diff --git a/DanishCvr/Interfaces/IDanishCvrBatchService.cs b/DanishCvr/Interfaces/IDanishCvrBatchService.cs new file mode 100644 index 0000000..422999d --- /dev/null +++ b/DanishCvr/Interfaces/IDanishCvrBatchService.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using DanishCvr.Models.Debug; +using DanishCvr.Responses.Models; + +namespace DanishCvr.Interfaces; + +/// +/// Danish Cvr Batch Service Interface. +/// +public interface IDanishCvrBatchService +{ + /// + /// Search All Async. + /// + /// The post action to execute. + /// The max iterations. + /// The skip interations + /// The max concurrent searches. + /// The . + /// The . + Task SearchAllAsync(Action> postAction, int maxInterations, int skipInterations, int maxParallelism, CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/DanishCvr/Interfaces/IDanishCvrService.cs b/DanishCvr/Interfaces/IDanishCvrService.cs new file mode 100644 index 0000000..b7336c7 --- /dev/null +++ b/DanishCvr/Interfaces/IDanishCvrService.cs @@ -0,0 +1,155 @@ +using DanishCvr.Requests; +using DanishCvr.Requests.Models; +using DanishCvr.Responses; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace DanishCvr.Interfaces; + +/// +/// Danish Cvr Service Interface. +/// https://assets.eu.ctfassets.net/i6cea2ilpb83/5StPtRVFA1oMM2XkrpVx1G/4235f52ed303a4663b699cb2bb197347/soegeeksempler_permanent_v.6.x.pdf +/// https://assets.ctfassets.net/xooti71hnsox/3AmPSE0KQtb5UDFWRnxgx3/45bb296d572e4e6e00f268e49e4c7f92/S__geeksempler_i_Registreringstekster.pdf +/// +public interface IDanishCvrService +{ + /// + /// Get Company Business Types Async. + /// + /// The . + /// The . + Task GetCompanyBusinessTypesAsync(CancellationToken cancellationToken = default); + + /// + /// Get Company Statuses Async. + /// + /// The . + /// The . + Task GetCompanyStatusesAsync(CancellationToken cancellationToken = default); + + /// + /// Get Company Industries Async. + /// + /// The . + /// The . + Task GetCompanyIndustriesAsync(CancellationToken cancellationToken = default); + + /// + /// Get Company Async. + /// + /// The registration number. + /// The . + /// The . + Task GetCompanyAsync(string registrationNumber, CancellationToken cancellationToken = default); + + /// + /// Get Company By External Id Async. + /// + /// The external id. + /// The . + /// The . + Task GetCompanyByExternalIdAsync(string externalId, CancellationToken cancellationToken = default); + + /// + /// Get Companies Async. + /// + /// The registration numbers. + /// The . + /// The . + Task GetCompaniesAsync(IEnumerable registrationNumbers, CancellationToken cancellationToken = default); + + /// + /// Get Companies Async. + /// + /// The registration number prefix. Wilcard (*) will be appended. + /// The paging. + /// The . + /// The . + Task GetCompaniesAsync(string registrationNumberPrefix, Paging paging = null, CancellationToken cancellationToken = default); + + /// + /// Auto Complete Companies Async. + /// + /// The request. + /// The . + /// The . + Task AutoCompleteCompaniesAsync(AutoCompleteCompaniesRequest request, CancellationToken cancellationToken = default); + + /// + /// Search Company Async. + /// + /// The request. + /// The . + /// The . + Task SearchCompaniesAsync(SearchCompaniesRequest request, CancellationToken cancellationToken = default); + + /// + /// Get Company Registration Texts Async. + /// + /// The registration number. + /// The paging. + /// The . + /// The . + Task GetCompanyRegistrationTextsAsync(string registrationNumber, Paging paging = null, CancellationToken cancellationToken = default); + + /// + /// Get Production Unit Async. + /// + /// The production unit id. + /// The . + /// The . + Task GetProductionUnitAsync(string productionUnitId, CancellationToken cancellationToken = default); + + /// + /// Get Production Units Async. + /// + /// The registration number. + /// Whether to include historic inactive production units. + /// The paging. + /// The . + /// The collection of . + Task GetProductionUnitsAsync(string registrationNumber, bool includeHistoric = false, Paging paging = null, CancellationToken cancellationToken = default); + + /// + /// Search Production Units Async. + /// + /// The . + /// The . + /// The . + Task SearchProductionUnitsAsync(SearchProductionUnitsRequest request, CancellationToken cancellationToken = default); + + /// + /// Get Person Async. + /// + /// The external id. + /// The . + /// The . + Task GetPersonAsync(string externalId, CancellationToken cancellationToken = default); + + /// + /// Auto Complete Persons Async. + /// + /// The . + /// The . + /// The . + Task AutoCompletePersonsAsync(AutoCompletePersonsRequest request, CancellationToken cancellationToken = default); + + /// + /// Search Persons Async. + /// + /// The . + /// The . + /// The . + Task SearchPersonsAsync(SearchPersonsRequest request, CancellationToken cancellationToken = default); + + /// + /// Get Relations Async. + /// + /// The external id. + /// Whether to include historic inactive relations. + /// The paging. + /// The . + /// The . + Task GetRelationsAsync(string externalId, bool includeHistoric = false, Paging paging = null, CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/DanishCvr/Models/AarsBeskaeftigelse.cs b/DanishCvr/Models/AarsBeskaeftigelse.cs new file mode 100644 index 0000000..f83cccf --- /dev/null +++ b/DanishCvr/Models/AarsBeskaeftigelse.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Models; + +/// +/// Aars Beskaeftigelse. +/// +public class AarsBeskaeftigelse : Beskaeftigelse +{ + /// + /// Antal Inklusiv Ejere. + /// + public virtual int? AntalInklusivEjere { get; set; } + + /// + /// Interval Kode Antal Inklusiv Ejere. + /// + public virtual string IntervalKodeAntalInklusivEjere { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Adresse.cs b/DanishCvr/Models/Adresse.cs new file mode 100644 index 0000000..7243064 --- /dev/null +++ b/DanishCvr/Models/Adresse.cs @@ -0,0 +1,99 @@ +using System; + +namespace DanishCvr.Models; + +/// +/// Adresse. +/// +public class Adresse : DatoOgPeriode +{ + /// + /// Lande Kode. + /// + public virtual string LandeKode { get; set; } + + /// + /// Fri Tekst. + /// + public virtual string FriTekst { get; set; } + + /// + /// Vej Kode. + /// + public virtual int VejKode { get; set; } + + /// + /// Kommune. + /// + public virtual Kommune Kommune { get; set; } = new(); + + /// + /// Husnummer Fra. + /// + public virtual string HusnummerFra { get; set; } + + /// + /// Adresse Id. + /// + public virtual string AdresseId { get; set; } + + /// + /// Sidst Valideret. + /// + public virtual DateTimeOffset? SidstValideret { get; set; } + + /// + /// Husnummer Til. + /// + public virtual string HusnummerTil { get; set; } + + /// + /// Bogstav Fra. + /// + public virtual string BogstavFra { get; set; } + + /// + /// Bogstav Til. + /// + public virtual string BogstavTil { get; set; } + + /// + /// Etage. + /// + public virtual string Etage { get; set; } + + /// + /// Side Doer. + /// + public virtual string SideDoer { get; set; } + + /// + /// Co Navn. + /// + public virtual string CoNavn { get; set; } + + /// + /// Postboks. + /// + public virtual string Postboks { get; set; } + + /// + /// Vej Navn. + /// + public virtual string VejNavn { get; set; } + + /// + /// By Navn. + /// + public virtual string ByNavn { get; set; } + + /// + /// Post Nummer. + /// + public virtual string PostNummer { get; set; } + + /// + /// Post Distrikt. + /// + public virtual string PostDistrikt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Attributter.cs b/DanishCvr/Models/Attributter.cs new file mode 100644 index 0000000..3a273df --- /dev/null +++ b/DanishCvr/Models/Attributter.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Attributter. +/// +public class Attributter +{ + /// + /// SekvensNr. + /// + public virtual int SekvensNr { get; set; } + + /// + /// Type. + /// + public virtual string Type { get; set; } + + /// + /// Vaerdi Type. + /// + public virtual string VaerdiType { get; set; } + + /// + /// Vaerdier. + /// + public virtual IEnumerable Vaerdier { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/Beskaeftigelse.cs b/DanishCvr/Models/Beskaeftigelse.cs new file mode 100644 index 0000000..7c00cbc --- /dev/null +++ b/DanishCvr/Models/Beskaeftigelse.cs @@ -0,0 +1,39 @@ +using System; + +namespace DanishCvr.Models; + +/// +/// Beskaeftigelse. +/// +public class Beskaeftigelse +{ + /// + /// Aar. + /// + public virtual int Aar { get; set; } + + /// + /// Antal Aarsvaerk. + /// + public virtual double AntalAarsvaerk { get; set; } + + /// + /// Antal Ansatte. + /// + public virtual int? AntalAnsatte { get; set; } + + /// + /// Sidst Opdateret. + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } + + /// + /// Interval Kode Antal Aarsvaerk. + /// + public virtual string IntervalKodeAntalAarsvaerk { get; set; } + + /// + /// Interval Kode Antal Ansatte. + /// + public virtual string IntervalKodeAntalAnsatte { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Branche.cs b/DanishCvr/Models/Branche.cs new file mode 100644 index 0000000..4fbf47a --- /dev/null +++ b/DanishCvr/Models/Branche.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Models; + +/// +/// Branche. +/// +public class Branche : DatoOgPeriode +{ + /// + /// Branche Kode. + /// + public virtual string BrancheKode { get; set; } + + /// + /// Branche Tekst + /// + public virtual string BrancheTekst { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/DatoOgPeriode.cs b/DanishCvr/Models/DatoOgPeriode.cs new file mode 100644 index 0000000..23321b5 --- /dev/null +++ b/DanishCvr/Models/DatoOgPeriode.cs @@ -0,0 +1,19 @@ +using System; + +namespace DanishCvr.Models; + +/// +/// Dato Og Periode. +/// +public class DatoOgPeriode +{ + /// + /// Periode. + /// + public virtual Periode Periode { get; set; } = new(); + + /// + /// Sidst Opdateret. + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Debug/DebugAttribute.cs b/DanishCvr/Models/Debug/DebugAttribute.cs new file mode 100644 index 0000000..6a7b872 --- /dev/null +++ b/DanishCvr/Models/Debug/DebugAttribute.cs @@ -0,0 +1,24 @@ +using System.Collections.Concurrent; + +namespace DanishCvr.Models.Debug; + +/// +/// Debug Attribute. +/// +public class DebugAttribute +{ + /// + /// Value. + /// + public virtual string Value { get; set; } + + /// + /// Count. + /// + public virtual int Count { get; set; } + + /// + /// Sample Registration Numbers. + /// + public virtual ConcurrentBag SampleRegistrationNumbers { get; set; } = []; +} \ No newline at end of file diff --git a/DanishCvr/Models/Debug/DebugHovedType.cs b/DanishCvr/Models/Debug/DebugHovedType.cs new file mode 100644 index 0000000..6388fce --- /dev/null +++ b/DanishCvr/Models/Debug/DebugHovedType.cs @@ -0,0 +1,24 @@ +using System.Collections.Concurrent; + +namespace DanishCvr.Models.Debug; + +/// +/// Debug Hoved Type. +/// +public class DebugHovedType +{ + /// + /// Type. + /// + public virtual string Type { get; set; } + + /// + /// Count. + /// + public virtual int Count { get; set; } + + /// + /// Attributes. + /// + public virtual ConcurrentBag Attributes { get; set; } = []; +} \ No newline at end of file diff --git a/DanishCvr/Models/Debug/DebugInformation.cs b/DanishCvr/Models/Debug/DebugInformation.cs new file mode 100644 index 0000000..8dc99f1 --- /dev/null +++ b/DanishCvr/Models/Debug/DebugInformation.cs @@ -0,0 +1,19 @@ +using System.Collections.Concurrent; + +namespace DanishCvr.Models.Debug; + +/// +/// Debug Information. +/// +public class DebugInformation +{ + /// + /// Hoved Typer. + /// + public virtual ConcurrentBag HovedTyper { get; set; } = []; + + /// + /// Attributes. + /// + public virtual ConcurrentBag Attributes { get; set; } = []; +} \ No newline at end of file diff --git a/DanishCvr/Models/Deltager.cs b/DanishCvr/Models/Deltager.cs new file mode 100644 index 0000000..3d00f21 --- /dev/null +++ b/DanishCvr/Models/Deltager.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Deltager. +/// +public class Deltager +{ + /// + /// Vr Deltager Person. + /// + public virtual VrDeltagerPerson VrDeltagerPerson { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/DeltagerPersonMetadata.cs b/DanishCvr/Models/DeltagerPersonMetadata.cs new file mode 100644 index 0000000..a126fbe --- /dev/null +++ b/DanishCvr/Models/DeltagerPersonMetadata.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Deltager Person Metadata. +/// +public class DeltagerPersonMetadata +{ + /// + /// Nyeste Beliggenheds Adresse. + /// + public virtual Adresse NyesteBeliggenhedsAdresse { get; set; } + + /// + /// Nyeste Kontakt Oplysninger. + /// + public virtual List NyesteKontaktOplysninger { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/DeltagerRelation.cs b/DanishCvr/Models/DeltagerRelation.cs new file mode 100644 index 0000000..37e6254 --- /dev/null +++ b/DanishCvr/Models/DeltagerRelation.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Deltager Relation. +/// +public class DeltagerRelation +{ + /// + /// Deltager. + /// + public virtual VrDeltager Deltager { get; set; } = new(); + + /// + /// kontor Steder. + /// + public virtual IEnumerable KontorSteder { get; set; } = new List(); + + /// + /// Organisationer. + /// + public virtual IEnumerable Organisationer { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/FusionSpaltning.cs b/DanishCvr/Models/FusionSpaltning.cs new file mode 100644 index 0000000..4576a73 --- /dev/null +++ b/DanishCvr/Models/FusionSpaltning.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Fusion Spaltning. +/// +public class FusionSpaltning +{ + /// + /// Enheds Nummer Organisation. + /// + public virtual string EnhedsNummerOrganisation { get; set; } + + /// + /// Organisations Navn. + /// + public virtual IEnumerable OrganisationsNavn { get; set; } = new List(); + + /// + /// Indgaaende. + /// + public virtual IEnumerable Indgaaende { get; set; } = new List(); + + /// + /// Udgaaende. + /// + public virtual IEnumerable Udgaaende { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/Kommune.cs b/DanishCvr/Models/Kommune.cs new file mode 100644 index 0000000..2ea0805 --- /dev/null +++ b/DanishCvr/Models/Kommune.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Models; + +/// +/// Kommune. +/// +public class Kommune : DatoOgPeriode +{ + /// + /// Kommune Kode. + /// + public virtual int KommuneKode { get; set; } + + /// + /// Kommune Navn. + /// + public virtual string KommuneNavn { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Kontakt.cs b/DanishCvr/Models/Kontakt.cs new file mode 100644 index 0000000..fefa4cb --- /dev/null +++ b/DanishCvr/Models/Kontakt.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Models; + +/// +/// Kontakt. +/// +public class Kontakt : DatoOgPeriode +{ + /// + /// Kontakt Oplysning. + /// + public virtual string KontaktOplysning { get; set; } + + /// + /// Hemmelig. + /// + public virtual bool Hemmelig { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/KontorSted.cs b/DanishCvr/Models/KontorSted.cs new file mode 100644 index 0000000..4247121 --- /dev/null +++ b/DanishCvr/Models/KontorSted.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Kontor Sted. +/// +public class KontorSted +{ + /// + /// P Enhed. + /// + public virtual PEnhed PEnhed { get; set; } = new(); + + /// + /// Attributter. + /// + public virtual IEnumerable Attributter { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/KvartalsBeskaeftigelse.cs b/DanishCvr/Models/KvartalsBeskaeftigelse.cs new file mode 100644 index 0000000..2a16cc4 --- /dev/null +++ b/DanishCvr/Models/KvartalsBeskaeftigelse.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Kvartals Beskaeftigelse. +/// +public class KvartalsBeskaeftigelse : Beskaeftigelse +{ + /// + /// Kvartal. + /// + public virtual int Kvartal { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/LivsForloeb.cs b/DanishCvr/Models/LivsForloeb.cs new file mode 100644 index 0000000..b0d5da2 --- /dev/null +++ b/DanishCvr/Models/LivsForloeb.cs @@ -0,0 +1,6 @@ +namespace DanishCvr.Models; + +/// +/// Livs Forloeb. +/// +public class LivsForloeb : DatoOgPeriode; \ No newline at end of file diff --git a/DanishCvr/Models/MaanedsBeskaeftigelse.cs b/DanishCvr/Models/MaanedsBeskaeftigelse.cs new file mode 100644 index 0000000..3e152b4 --- /dev/null +++ b/DanishCvr/Models/MaanedsBeskaeftigelse.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Maaneds Beskaeftigelse. +/// +public class MaanedsBeskaeftigelse : Beskaeftigelse +{ + /// + /// Maaned. + /// + public virtual int Maaned { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/MedlemsData.cs b/DanishCvr/Models/MedlemsData.cs new file mode 100644 index 0000000..01d2838 --- /dev/null +++ b/DanishCvr/Models/MedlemsData.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Medlems Data. +/// +public class MedlemsData +{ + /// + /// Attributter + /// + public virtual IEnumerable Attributter { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/Navne.cs b/DanishCvr/Models/Navne.cs new file mode 100644 index 0000000..eda62bb --- /dev/null +++ b/DanishCvr/Models/Navne.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Navne. +/// +public class Navne : DatoOgPeriode +{ + /// + /// Navn. + /// + public virtual string Navn { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Organisation.cs b/DanishCvr/Models/Organisation.cs new file mode 100644 index 0000000..bd2817c --- /dev/null +++ b/DanishCvr/Models/Organisation.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Organisation. +/// +public class Organisation +{ + /// + /// Enheds Nummer Organisation. + /// + public virtual string EnhedsNummerOrganisation { get; set; } + + /// + /// Hoved Type. + /// + public virtual string HovedType { get; set; } + + /// + /// Organisations Navn. + /// + public virtual IEnumerable OrganisationsNavn { get; set; } = new List(); + + /// + /// Attributter. + /// + public virtual IEnumerable Attributter { get; set; } = new List(); + + /// + /// Medlems Data. + /// + public virtual IEnumerable MedlemsData { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/PEnhed.cs b/DanishCvr/Models/PEnhed.cs new file mode 100644 index 0000000..187ca17 --- /dev/null +++ b/DanishCvr/Models/PEnhed.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// P Enheder. +/// +public class PEnhed : DatoOgPeriode +{ + /// + /// P Nummer. + /// + public virtual int PNummer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Periode.cs b/DanishCvr/Models/Periode.cs new file mode 100644 index 0000000..349c6a3 --- /dev/null +++ b/DanishCvr/Models/Periode.cs @@ -0,0 +1,36 @@ +using System; + +namespace DanishCvr.Models; + +/// +/// Periode. +/// +public class Periode +{ + /// + /// Gyldig Fra. + /// + public virtual DateOnly? GyldigFra { get; set; } + + /// + /// Gyldig Til. + /// + public virtual DateOnly? GyldigTil { get; set; } + + /// + /// Is Valid. + /// + /// Whether the is valid. + public virtual bool IsActive() + { + return + ( + this.GyldigFra == null || + this.GyldigFra <= DateOnly.FromDateTime(DateTime.UtcNow) + ) && + ( + this.GyldigTil == null || + this.GyldigTil >= DateOnly.FromDateTime(DateTime.UtcNow) + ); + } +} \ No newline at end of file diff --git a/DanishCvr/Models/PostAdresse.cs b/DanishCvr/Models/PostAdresse.cs new file mode 100644 index 0000000..bcc89c7 --- /dev/null +++ b/DanishCvr/Models/PostAdresse.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Models; + +/// +/// Post Adresse. +/// +public class PostAdresse : DatoOgPeriode +{ + /// + /// Co Navn. + /// + public virtual string CoNavn { get; set; } + + /// + /// Fri Tekst. + /// + public virtual string FriTekst { get; set; } + + /// + /// Lande Kode. + /// + public virtual string LandeKode { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/ProduktionsEnhed.cs b/DanishCvr/Models/ProduktionsEnhed.cs new file mode 100644 index 0000000..92c0b5a --- /dev/null +++ b/DanishCvr/Models/ProduktionsEnhed.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Produktions Enhed. +/// +public class ProduktionsEnhed +{ + /// + /// Vr Produktions Enhed. + /// + public virtual VrProduktionsEnhed VrProduktionsEnhed { get; set; } = new(); +} \ No newline at end of file diff --git a/DanishCvr/Models/ProduktionsEnhedMetadata.cs b/DanishCvr/Models/ProduktionsEnhedMetadata.cs new file mode 100644 index 0000000..0b79b7a --- /dev/null +++ b/DanishCvr/Models/ProduktionsEnhedMetadata.cs @@ -0,0 +1,69 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Produktions Enhed Metadata. +/// +public class ProduktionsEnhedMetadata +{ + /// + /// Nyeste Navn + /// + public virtual Navne NyesteNavn { get; set; } + + /// + /// Nyeste Beliggenheds Adresse. + /// + public virtual Adresse NyesteBeliggenhedsAdresse { get; set; } + + /// + /// Nyeste Hoved Branche. + /// + public virtual Branche NyesteHovedBranche { get; set; } + + /// + /// Nyeste Bi Branche 1. + /// + public virtual Branche NyesteBiBranche1 { get; set; } + + /// + /// Nyeste Bi Branche 2. + /// + public virtual Branche NyesteBiBranche2 { get; set; } + + /// + /// Nyeste Bi Branche 3. + /// + public virtual Branche NyesteBiBranche3 { get; set; } + + /// + /// Nyeste Kontakt Oplysninger. + /// + public virtual List NyesteKontaktOplysninger { get; set; } + + /// + /// Nyeste Cvr Nummer Relation. + /// + public virtual string NyesteCvrNummerRelation { get; set; } + + /// + /// Nyeste Aars Beskaeftigelse. + /// + public virtual AarsBeskaeftigelse NyesteAarsBeskaeftigelse { get; set; } + + /// + /// Nyeste Kvartals Beskaeftigelse. + /// + public virtual KvartalsBeskaeftigelse NyesteKvartalsBeskaeftigelse { get; set; } + + /// + /// Nyeste Erst Maaneds Beskaeftigelse. + /// + public virtual MaanedsBeskaeftigelse NyesteErstMaanedsBeskaeftigelse { get; set; } + + /// + /// Sammensat Status. + /// + public virtual string SammensatStatus { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/RegNummer.cs b/DanishCvr/Models/RegNummer.cs new file mode 100644 index 0000000..c13068c --- /dev/null +++ b/DanishCvr/Models/RegNummer.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Reg Nummer. +/// +public class RegNummer : DatoOgPeriode +{ + /// + /// Regnummer. + /// + public virtual string Regnummer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/RegistreringsTekst.cs b/DanishCvr/Models/RegistreringsTekst.cs new file mode 100644 index 0000000..dfcc2d9 --- /dev/null +++ b/DanishCvr/Models/RegistreringsTekst.cs @@ -0,0 +1,80 @@ +using System.Collections.Generic; +using System; + +namespace DanishCvr.Models; + +/// +/// Registrerings Tekst. +/// +public class RegistreringsTekst +{ + /// + /// Offentliggoerelse Id. + /// + public virtual string OffentliggoerelseId { get; set; } + + /// + /// Registrering Tidsstempel. + /// + public virtual DateTimeOffset? RegistreringTidsstempel { get; set; } + + /// + /// Offentliggoerelse Tidsstempel. + /// + public virtual DateTimeOffset? OffentliggoerelseTidsstempel { get; set; } + + /// + /// Cvr Nummer. + /// + public virtual string CvrNummer { get; set; } + + /// + /// Hoved Navn. + /// + public virtual string HovedNavn { get; set; } + + /// + /// Adresse. + /// + public virtual string Adresse { get; set; } + + /// + /// Kommune Kode. + /// + public virtual string KommuneKode { get; set; } + + /// + /// Postnummer. + /// + public virtual string Postnummer { get; set; } + + /// + /// Virksomheds Formkode. + /// + public virtual string VirksomhedsFormkode { get; set; } + + /// + /// Tekst. + /// + public virtual string Tekst { get; set; } + + /// + /// Virksomheds Registrering Statusser. + /// + public virtual IEnumerable VirksomhedsRegistreringStatusser { get; set; } = new List(); + + /// + /// Oprettet. + /// + public virtual DateTimeOffset? Oprettet { get; set; } + + /// + /// Opdateret. + /// + public virtual DateTimeOffset? Opdateret { get; set; } + + /// + /// Sidst Opdateret. + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Status.cs b/DanishCvr/Models/Status.cs new file mode 100644 index 0000000..47629f1 --- /dev/null +++ b/DanishCvr/Models/Status.cs @@ -0,0 +1,30 @@ +namespace DanishCvr.Models; + +/// +/// Status. +/// +public class Status : DatoOgPeriode +{ + /// + /// Status Kode. + /// For "statuskode" er udfaldsrummet: + /// "1" - Dekret + /// "2" - Ophævelse af dekret + /// "3" - Regnskab og boafslutning + /// "4" - Andre meddelelser + /// "5" - Indkaldelse til fordringsprøvelse + /// "6" - Skiftesamling + /// "7" - Andre meddelelser + /// "8" - Åbning af forhandling + /// "9" - Stadfæstelse + /// + public virtual long StatusKode { get; set; } + + /// + /// Kredit Oplysning Kode. + /// For "kreditoplysningskode" er udfaldsrummet: + /// "1" - Konkurs + /// "3" - Tvangsakkord + /// + public virtual long KreditOplysningKode { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Vaerdier.cs b/DanishCvr/Models/Vaerdier.cs new file mode 100644 index 0000000..be419bd --- /dev/null +++ b/DanishCvr/Models/Vaerdier.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Vaerdier. +/// +public class Vaerdier : DatoOgPeriode +{ + /// + /// Vaerdi. + /// + public virtual string Vaerdi { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/Virksomhed.cs b/DanishCvr/Models/Virksomhed.cs new file mode 100644 index 0000000..dd21875 --- /dev/null +++ b/DanishCvr/Models/Virksomhed.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Virksomhed. +/// +public class Virksomhed +{ + /// + /// Vr Virksomhed. + /// + public virtual VrVirksomhed VrVirksomhed { get; set; } = new(); +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedMetadata.cs b/DanishCvr/Models/VirksomhedMetadata.cs new file mode 100644 index 0000000..790f710 --- /dev/null +++ b/DanishCvr/Models/VirksomhedMetadata.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Virksomhed Metadata. +/// +public class VirksomhedMetadata +{ + /// + /// Nyeste Navn + /// + public virtual Navne NyesteNavn { get; set; } + + /// + /// Nyeste Bi Navne + /// + public virtual IEnumerable NyesteBiNavne { get; set; } + + /// + /// Nyeste Virksomheds Form. + /// + public virtual VirksomhedsForm NyesteVirksomhedsForm { get; set; } + + /// + /// Nyeste Beliggenheds Adresse. + /// + public virtual Adresse NyesteBeliggenhedsAdresse { get; set; } + + /// + /// Nyeste Hoved Branche. + /// + public virtual Branche NyesteHovedBranche { get; set; } + + /// + /// Nyeste Bi Branche 1. + /// + public virtual Branche NyesteBiBranche1 { get; set; } + + /// + /// Nyeste Bi Branche 2. + /// + public virtual Branche NyesteBiBranche2 { get; set; } + + /// + /// Nyeste Bi Branche 3. + /// + public virtual Branche NyesteBiBranche3 { get; set; } + + /// + /// Nyeste Status. + /// + public virtual Status NyesteStatus { get; set; } + + /// + /// Nyeste Kontakt Oplysninger. + /// + public virtual List NyesteKontaktOplysninger { get; set; } + + /// + /// Antal P Enheder. + /// + public virtual int AntalPEnheder { get; set; } + + /// + /// Nyeste Aars Beskaeftigelse. + /// + public virtual AarsBeskaeftigelse NyesteAarsBeskaeftigelse { get; set; } + + /// + /// Nyeste Kvartals Beskaeftigelse. + /// + public virtual KvartalsBeskaeftigelse NyesteKvartalsBeskaeftigelse { get; set; } + + /// + /// Nyeste Maaneds Beskaeftigelse. + /// + public virtual MaanedsBeskaeftigelse NyesteMaanedsBeskaeftigelse { get; set; } + + /// + /// Nyeste Erst Maaneds Beskaeftigelse. + /// + public virtual MaanedsBeskaeftigelse NyesteErstMaanedsBeskaeftigelse { get; set; } + + /// + /// Sammensat Status. + /// + public virtual string SammensatStatus { get; set; } + + /// + /// Stiftelses Dato. + /// + public virtual DateOnly? StiftelsesDato { get; set; } + + /// + /// Virknings Dato. + /// + public virtual DateOnly? VirkningsDato { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedSummarisk.cs b/DanishCvr/Models/VirksomhedSummarisk.cs new file mode 100644 index 0000000..ab5becc --- /dev/null +++ b/DanishCvr/Models/VirksomhedSummarisk.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Virksomhed Summarisk. +/// +public class VirksomhedSummarisk +{ + /// + /// Enheds Nummer. + /// + public virtual string EnhedsNummer { get; set; } + + /// + /// Enheds Type + /// + public virtual string EnhedsType { get; set; } + + /// + /// Fejl Registreret. + /// + public virtual bool FejlRegistreret { get; set; } + + /// + /// sidst Indlaest + /// + public virtual DateTimeOffset? SidstIndlaest { get; set; } + + /// + /// sidst Opdateret + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } + + /// + /// Cvr Nummer. + /// + public virtual string CvrNummer { get; set; } + + /// + /// Reg Nummer. + /// + public virtual IEnumerable RegNummer { get; set; } = new List(); + + /// + /// Navne. + /// + public virtual IEnumerable Navne { get; set; } = new List(); + + /// + /// Livs Forloeb. + /// + public virtual IEnumerable LivsForloeb { get; set; } = new List(); + + /// + /// Status. + /// + public virtual IEnumerable Status { get; set; } = new List(); + + /// + /// Virksomheds Status. + /// + public virtual IEnumerable VirksomhedsStatus { get; set; } = new List(); + + /// + /// Virksomheds Form. + /// + public virtual IEnumerable VirksomhedsForm { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedSummariskRelation.cs b/DanishCvr/Models/VirksomhedSummariskRelation.cs new file mode 100644 index 0000000..7b57243 --- /dev/null +++ b/DanishCvr/Models/VirksomhedSummariskRelation.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Virksomhed Summarisk Relation. +/// +public class VirksomhedSummariskRelation +{ + /// + /// Virksomhed. + /// + public virtual VirksomhedSummarisk Virksomhed { get; set; } + + /// + /// Organisationer. + /// + public virtual IEnumerable Organisationer { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedsForm.cs b/DanishCvr/Models/VirksomhedsForm.cs new file mode 100644 index 0000000..31b2c27 --- /dev/null +++ b/DanishCvr/Models/VirksomhedsForm.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Models; + +/// +/// Virksomheds Form. +/// +public class VirksomhedsForm : DatoOgPeriode +{ + /// + /// Virksomheds Form Kode. + /// + public virtual int VirksomhedsFormKode { get; set; } + + /// + /// Kort Beskrivelse. + /// + public virtual string KortBeskrivelse { get; set; } + + /// + /// Lang Beskrivelse. + /// + public virtual string LangBeskrivelse { get; set; } + + /// + /// Ansvarlig Data Leverandoer. + /// + public virtual string AnsvarligDataLeverandoer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedsRelation.cs b/DanishCvr/Models/VirksomhedsRelation.cs new file mode 100644 index 0000000..251c3c5 --- /dev/null +++ b/DanishCvr/Models/VirksomhedsRelation.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Virksomheds Relation. +/// +public class VirksomhedsRelation : DatoOgPeriode +{ + /// + /// Cvr Nummer. + /// + public virtual string CvrNummer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/VirksomhedsStatus.cs b/DanishCvr/Models/VirksomhedsStatus.cs new file mode 100644 index 0000000..71e66b7 --- /dev/null +++ b/DanishCvr/Models/VirksomhedsStatus.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Models; + +/// +/// Virksomheds Status. +/// +public class VirksomhedsStatus : DatoOgPeriode +{ + /// + /// Status. + /// + public virtual string Status { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/VrDeltager.cs b/DanishCvr/Models/VrDeltager.cs new file mode 100644 index 0000000..7b7b53a --- /dev/null +++ b/DanishCvr/Models/VrDeltager.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Vr Deltager. +/// +public class VrDeltager +{ + /// + /// Enheds Nummer. + /// + public virtual string EnhedsNummer { get; set; } + + /// + /// Enheds Type + /// + public virtual string EnhedsType { get; set; } + + /// + /// Forretnings Noegle. + /// + public virtual string ForretningsNoegle { get; set; } + + /// + /// Organisations Type. + /// + public virtual string OrganisationsType { get; set; } + + /// + /// Sidst Indlaest + /// + public virtual DateTimeOffset? SidstIndlaest { get; set; } + + /// + /// Sidst Opdateret. + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } + + /// + /// Navne. + /// + public virtual IEnumerable Navne { get; set; } = new List(); + + /// + /// Adresse Hemmelig. + /// + public virtual bool AdresseHemmelig { get; set; } + + /// + /// Adresse Hemmelig Undtagelse. + /// + public virtual bool AdresseHemmeligUndtagelse { get; set; } + + /// + /// Adresse Opdatering Ophoert. + /// + public virtual bool AdresseOpdateringOphoert { get; set; } + + /// + /// Beliggenheds Adresse. + /// + public virtual IEnumerable BeliggenhedsAdresse { get; set; } = new List(); + + /// + /// Post Adresse. + /// + public virtual IEnumerable PostAdresse { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/VrDeltagerPerson.cs b/DanishCvr/Models/VrDeltagerPerson.cs new file mode 100644 index 0000000..6d20ec3 --- /dev/null +++ b/DanishCvr/Models/VrDeltagerPerson.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Vr Deltager Person. +/// +public class VrDeltagerPerson : VrDeltager +{ + /// + /// Stilling. + /// + public virtual string Stilling { get; set; } + + /// + /// Status Kode. + /// + public virtual string StatusKode { get; set; } + + /// + /// Deltager Person Metadata. + /// + public virtual DeltagerPersonMetadata DeltagerPersonMetadata { get; set; } + + /// + /// Samt Id + /// + public virtual long SamtId { get; set; } + + /// + /// Fejl Registreret. + /// + public virtual bool FejlRegistreret { get; set; } + + /// + /// Data Adgang. + /// + public virtual int DataAdgang { get; set; } + + /// + /// Fejl Ved Indlaesning. + /// + public virtual bool FejlVedIndlaesning { get; set; } + + /// + /// naermeste Fremtidige Dato. + /// + public virtual DateOnly? NaermesteFremtidigeDato { get; set; } + + /// + /// Fejl Beskrivelse. + /// + public virtual string FejlBeskrivelse { get; set; } + + /// + /// Virknings Aktoer. + /// + public virtual string VirkningsAktoer { get; set; } + + /// + /// Telefon Nummer. + /// + public virtual IEnumerable TelefonNummer { get; set; } = new List(); + + /// + /// Telefax Nummer. + /// + public virtual IEnumerable TelefaxNummer { get; set; } = new List(); + + /// + /// Elektronisk Post + /// + public virtual IEnumerable ElektroniskPost { get; set; } = new List(); + + /// + /// Virksomhed Summarisk Relation. + /// + public virtual IEnumerable VirksomhedSummariskRelation { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Models/VrProduktionsEnhed.cs b/DanishCvr/Models/VrProduktionsEnhed.cs new file mode 100644 index 0000000..91d2d5b --- /dev/null +++ b/DanishCvr/Models/VrProduktionsEnhed.cs @@ -0,0 +1,195 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Vr Produktions Enhed. +/// +public class VrProduktionsEnhed +{ + /// + /// P Nummer. + /// + public virtual string PNummer { get; set; } + + /// + /// Branche Ansvarskode. + /// + public virtual long? BrancheAnsvarskode { get; set; } + + /// + /// Reklame Beskyttet. + /// + public virtual bool ReklameBeskyttet { get; set; } + + /// + /// Navne. + /// + public virtual IEnumerable Navne { get; set; } = new List(); + + /// + /// Post Adresse. + /// + public virtual IEnumerable PostAdresse { get; set; } = new List(); + + /// + /// Beliggenheds Adresse. + /// + public virtual IEnumerable BeliggenhedsAdresse { get; set; } = new List(); + + /// + /// Telefon Nummer. + /// + public virtual IEnumerable TelefonNummer { get; set; } = new List(); + + /// + /// Telefax Nummer. + /// + public virtual IEnumerable TelefaxNummer { get; set; } = new List(); + + /// + /// Elektronisk Post + /// + public virtual IEnumerable ElektroniskPost { get; set; } = new List(); + + /// + /// Livs Forloeb. + /// + public virtual IEnumerable LivsForloeb { get; set; } = new List(); + + /// + /// Hoved branche. + /// + public virtual IEnumerable HovedBranche { get; set; } = new List(); + + /// + /// Bi Branche 1. + /// + public virtual IEnumerable BiBranche1 { get; set; } = new List(); + + /// + /// Bi Branche 2. + /// + public virtual IEnumerable BiBranche2 { get; set; } = new List(); + + /// + /// Bi Branche 3. + /// + public virtual IEnumerable BiBranche3 { get; set; } = new List(); + + /// + /// Aars Beskaeftigelse. + /// + public virtual IEnumerable AarsBeskaeftigelse { get; set; } = new List(); + + /// + /// Kvartals Beskaeftigelse. + /// + public virtual IEnumerable KvartalsBeskaeftigelse { get; set; } = new List(); + + /// + /// Maaneds Beskaeftigelse. + /// + public virtual IEnumerable MaanedsBeskaeftigelse { get; set; } = new List(); + + /// + /// Erst Maaneds Beskaeftigelse. + /// + public virtual IEnumerable ErstMaanedsBeskaeftigelse { get; set; } = new List(); + + /// + /// Virksomheds Relation. + /// + public virtual IEnumerable VirksomhedsRelation { get; set; } = new List(); + + /// + /// Attributter. + /// + public virtual IEnumerable Attributter { get; set; } = new List(); + + /// + /// Deltager Relation + /// + public virtual IEnumerable DeltagerRelation { get; set; } = new List(); + + /// + /// Produktions Enhed Metadata. + /// + public virtual ProduktionsEnhedMetadata ProduktionsEnhedMetadata { get; set; } + + /// + /// Hovedafdeling. + /// + public virtual bool? Hovedafdeling { get; set; } + + /// + /// Hjaelpe Enhed. + /// + public virtual bool? HjaelpeEnhed { get; set; } + + /// + /// Foreloebig. + /// + public virtual bool? Foreloebig { get; set; } + + /// + /// Fortrolig Beriget. + /// + public virtual bool? FortroligBeriget { get; set; } + + /// + /// Samt Id + /// + public virtual long SamtId { get; set; } + + /// + /// Fejl Registreret. + /// + public virtual bool FejlRegistreret { get; set; } + + /// + /// Data Adgang. + /// + public virtual int DataAdgang { get; set; } + + /// + /// Enheds Nummer. + /// + public virtual string EnhedsNummer { get; set; } + + /// + /// Enheds Type + /// + public virtual string EnhedsType { get; set; } + + /// + /// sidst Indlaest + /// + public virtual DateTimeOffset? SidstIndlaest { get; set; } + + /// + /// sidst Opdateret + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } + + /// + /// Fejl Ved Indlaesning. + /// + public virtual bool FejlVedIndlaesning { get; set; } + + /// + /// naermeste Fremtidige Dato. + /// + public virtual DateOnly? NaermesteFremtidigeDato { get; set; } + + /// + /// Fejl Beskrivelse. + /// + public virtual string FejlBeskrivelse { get; set; } + + /// + /// Virknings Aktoer. + /// + public virtual string VirkningsAktoer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Models/VrVirksomhed.cs b/DanishCvr/Models/VrVirksomhed.cs new file mode 100644 index 0000000..6b84636 --- /dev/null +++ b/DanishCvr/Models/VrVirksomhed.cs @@ -0,0 +1,230 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Models; + +/// +/// Vr Virksomhed. +/// +public class VrVirksomhed +{ + /// + /// Cvr Nummer. + /// + public virtual string CvrNummer { get; set; } + + /// + /// Reg Nummer. + /// + public virtual IEnumerable RegNummer { get; set; } = new List(); + + /// + /// Branche Ansvarskode. + /// + public virtual long? BrancheAnsvarskode { get; set; } + + /// + /// Reklame Beskyttet. + /// + public virtual bool ReklameBeskyttet { get; set; } + + /// + /// Navne. + /// + public virtual IEnumerable Navne { get; set; } = new List(); + + /// + /// Bi Navne. + /// + public virtual IEnumerable BiNavne { get; set; } = new List(); + + /// + /// Post Adresse. + /// + public virtual IEnumerable PostAdresse { get; set; } = new List(); + + /// + /// Beliggenheds Adresse. + /// + public virtual IEnumerable BeliggenhedsAdresse { get; set; } = new List(); + + /// + /// Telefon Nummer. + /// + public virtual IEnumerable TelefonNummer { get; set; } = new List(); + + /// + /// Telefax Nummer. + /// + public virtual IEnumerable TelefaxNummer { get; set; } = new List(); + + /// + /// Sekundaert Telefon Nummer. + /// + public virtual IEnumerable SekundaertTelefonNummer { get; set; } = new List(); + + /// + /// Sekundaert Telefax Nummer. + /// + public virtual IEnumerable SekundaertTelefaxNummer { get; set; } = new List(); + + /// + /// Elektronisk Post + /// + public virtual IEnumerable ElektroniskPost { get; set; } = new List(); + + /// + /// Hjemmeside. + /// + public virtual IEnumerable Hjemmeside { get; set; } = new List(); + + /// + /// Obligatorisk Email. + /// + public virtual IEnumerable ObligatoriskEmail { get; set; } = new List(); + + /// + /// Livs Forloeb. + /// + public virtual IEnumerable LivsForloeb { get; set; } = new List(); + + /// + /// Hoved branche. + /// + public virtual IEnumerable HovedBranche { get; set; } = new List(); + + /// + /// Bi Branche 1. + /// + public virtual IEnumerable BiBranche1 { get; set; } = new List(); + + /// + /// Bi Branche 2. + /// + public virtual IEnumerable BiBranche2 { get; set; } = new List(); + + /// + /// Bi Branche 3. + /// + public virtual IEnumerable BiBranche3 { get; set; } = new List(); + + /// + /// Status. + /// + public virtual IEnumerable Status { get; set; } = new List(); + + /// + /// Virksomheds Status. + /// + public virtual IEnumerable VirksomhedsStatus { get; set; } = new List(); + + /// + /// Virksomheds Form. + /// + public virtual IEnumerable VirksomhedsForm { get; set; } = new List(); + + /// + /// Aars Beskaeftigelse. + /// + public virtual IEnumerable AarsBeskaeftigelse { get; set; } = new List(); + + /// + /// Kvartals Beskaeftigelse. + /// + public virtual IEnumerable KvartalsBeskaeftigelse { get; set; } = new List(); + + /// + /// Maaneds Beskaeftigelse. + /// + public virtual IEnumerable MaanedsBeskaeftigelse { get; set; } = new List(); + + /// + /// Erst Maaneds Beskaeftigelse. + /// + public virtual IEnumerable ErstMaanedsBeskaeftigelse { get; set; } = new List(); + + /// + /// Attributter. + /// + public virtual IEnumerable Attributter { get; set; } = new List(); + + /// + /// P Enheder. + /// + public virtual IEnumerable PEnheder { get; set; } = new List(); + + /// + /// Deltager Relation + /// + public virtual IEnumerable DeltagerRelation { get; set; } = new List(); + + /// + /// Fusioner. + /// + public virtual IEnumerable Fusioner { get; set; } = new List(); + + /// + /// Spaltninger. + /// + public virtual IEnumerable Spaltninger { get; set; } = new List(); + + /// + /// Virksomhed Metadata. + /// + public virtual VirksomhedMetadata VirksomhedMetadata { get; set; } + + /// + /// Samt Id + /// + public virtual long SamtId { get; set; } + + /// + /// Fejl Registreret. + /// + public virtual bool FejlRegistreret { get; set; } + + /// + /// Data Adgang. + /// + public virtual int DataAdgang { get; set; } + + /// + /// Enheds Nummer. + /// + public virtual string EnhedsNummer { get; set; } + + /// + /// Enheds Type + /// + public virtual string EnhedsType { get; set; } + + /// + /// sidst Indlaest + /// + public virtual DateTimeOffset? SidstIndlaest { get; set; } + + /// + /// sidst Opdateret + /// + public virtual DateTimeOffset? SidstOpdateret { get; set; } + + /// + /// Fejl Ved Indlaesning. + /// + public virtual bool FejlVedIndlaesning { get; set; } + + /// + /// naermeste Fremtidige Dato. + /// + public virtual DateOnly? NaermesteFremtidigeDato { get; set; } + + /// + /// Fejl Beskrivelse. + /// + public virtual string FejlBeskrivelse { get; set; } + + /// + /// Virknings Aktoer. + /// + public virtual string VirkningsAktoer { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Properties/InternalsVisibleTo.cs b/DanishCvr/Properties/InternalsVisibleTo.cs new file mode 100644 index 0000000..6f3efa9 --- /dev/null +++ b/DanishCvr/Properties/InternalsVisibleTo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Tests.DanishCvr")] \ No newline at end of file diff --git a/DanishCvr/Requests/AutoCompleteCompaniesRequest.cs b/DanishCvr/Requests/AutoCompleteCompaniesRequest.cs new file mode 100644 index 0000000..19a2e07 --- /dev/null +++ b/DanishCvr/Requests/AutoCompleteCompaniesRequest.cs @@ -0,0 +1,19 @@ +using DanishCvr.Requests.Models; + +namespace DanishCvr.Requests; + +/// +/// Auto Complete Companies Request. +/// +public class AutoCompleteCompaniesRequest +{ + /// + /// Names. + /// + public virtual NamesWithAlternativeRequired Names { get; set; } = new(); + + /// + /// Is Active. + /// + public virtual bool? IsActive { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Requests/AutoCompletePersonsRequest.cs b/DanishCvr/Requests/AutoCompletePersonsRequest.cs new file mode 100644 index 0000000..54d970f --- /dev/null +++ b/DanishCvr/Requests/AutoCompletePersonsRequest.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Requests; + +/// +/// Auto Complete Persons Request. +/// +public class AutoCompletePersonsRequest +{ + /// + /// Name. + /// + [Required] + [MinLength(3)] + public virtual string Name { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Requests/BaseSearchRequest.cs b/DanishCvr/Requests/BaseSearchRequest.cs new file mode 100644 index 0000000..3b520a5 --- /dev/null +++ b/DanishCvr/Requests/BaseSearchRequest.cs @@ -0,0 +1,27 @@ +using DanishCvr.Requests.Models; + +namespace DanishCvr.Requests; + +/// +/// Base Search Request (abstract). +/// +public abstract class BaseSearchRequest + where TCriteria : class, new() + where TPaging : class, new() + where TSorting : BaseSorting, new() +{ + /// + /// Criteria. + /// + public virtual TCriteria Criteria { get; set; } = new(); + + /// + /// Paging. + /// + public virtual TPaging Paging { get; set; } = new(); + + /// + /// Sorting. + /// + public virtual TSorting Sorting { get; set; } = new(); +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/BaseSorting.cs b/DanishCvr/Requests/Models/BaseSorting.cs new file mode 100644 index 0000000..fe4ab56 --- /dev/null +++ b/DanishCvr/Requests/Models/BaseSorting.cs @@ -0,0 +1,14 @@ +using DanishCvr.Requests.Models.Enums; + +namespace DanishCvr.Requests.Models; + +/// +/// Base Sorting (abstract) +/// +public abstract class BaseSorting +{ + /// + /// Direction. + /// + public virtual SortDirection Direction { get; set; } = SortDirection.Ascending; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/CompanySorting.cs b/DanishCvr/Requests/Models/CompanySorting.cs new file mode 100644 index 0000000..1df7cc4 --- /dev/null +++ b/DanishCvr/Requests/Models/CompanySorting.cs @@ -0,0 +1,14 @@ +using DanishCvr.Requests.Models.Enums; + +namespace DanishCvr.Requests.Models; + +/// +/// Company Sorting. +/// +public class CompanySorting : BaseSorting +{ + /// + /// By. + /// + public virtual CompanySortBy By { get; set; } = CompanySortBy.Relevance; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Enums/CompanySortBy.cs b/DanishCvr/Requests/Models/Enums/CompanySortBy.cs new file mode 100644 index 0000000..0479255 --- /dev/null +++ b/DanishCvr/Requests/Models/Enums/CompanySortBy.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Requests.Models.Enums; + +/// +/// Company Sort By. +/// +public enum CompanySortBy +{ + /// + /// Relevance. + /// + Relevance = 0, + + /// + /// Name. + /// + Name = 1, + + /// + /// Number Of Employees. + /// + NumberOfEmployees = 2, + + /// + /// Founded At. + /// + FoundedAt = 3, + + /// + /// Dissolved At. + /// + DissolvedAt = 4 +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Enums/PersonSortBy.cs b/DanishCvr/Requests/Models/Enums/PersonSortBy.cs new file mode 100644 index 0000000..151069a --- /dev/null +++ b/DanishCvr/Requests/Models/Enums/PersonSortBy.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Requests.Models.Enums; + +/// +/// Person Sort By. +/// +public enum PersonSortBy +{ + /// + /// Relevance. + /// + Relevance = 0, + + /// + /// Name. + /// + Name = 1 +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Enums/ProductionUnitSortBy.cs b/DanishCvr/Requests/Models/Enums/ProductionUnitSortBy.cs new file mode 100644 index 0000000..2305e1b --- /dev/null +++ b/DanishCvr/Requests/Models/Enums/ProductionUnitSortBy.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Requests.Models.Enums; + +/// +/// Production Unit Sort By. +/// +public enum ProductionUnitSortBy +{ + /// + /// Relevance. + /// + Relevance = 0, + + /// + /// Name. + /// + Name = 1, + + /// + /// Number Of Employees. + /// + NumberOfEmployees = 2 +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Enums/SortDirection.cs b/DanishCvr/Requests/Models/Enums/SortDirection.cs new file mode 100644 index 0000000..40169cd --- /dev/null +++ b/DanishCvr/Requests/Models/Enums/SortDirection.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Requests.Models.Enums; + +/// +/// Sort Type. +/// +public enum SortDirection +{ + /// + /// Ascending. + /// + Ascending = 0, + + /// + /// Descending. + /// + Descending = 1 +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Names.cs b/DanishCvr/Requests/Models/Names.cs new file mode 100644 index 0000000..8051283 --- /dev/null +++ b/DanishCvr/Requests/Models/Names.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Requests.Models; + +/// +/// Names. +/// +public class Names +{ + /// + /// Name. + /// + [MinLength(3)] + public virtual string Name { get; set; } + + /// + /// Include Historic Names. + /// + public virtual bool IncludeHistoricNames { get; set; } = false; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/NamesRequired.cs b/DanishCvr/Requests/Models/NamesRequired.cs new file mode 100644 index 0000000..1510ebc --- /dev/null +++ b/DanishCvr/Requests/Models/NamesRequired.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Requests.Models; + +/// +/// Names Required. +/// +public class NamesRequired +{ + /// + /// Name. + /// + [Required] + [MinLength(3)] + public virtual string Name { get; set; } + + /// + /// Include Historic Names. + /// + public virtual bool IncludeHistoricNames { get; set; } = false; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/NamesWithAlternative.cs b/DanishCvr/Requests/Models/NamesWithAlternative.cs new file mode 100644 index 0000000..6dde119 --- /dev/null +++ b/DanishCvr/Requests/Models/NamesWithAlternative.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Requests.Models; + +/// +/// Names With Alternative. +/// +public class NamesWithAlternative : Names +{ + /// + /// Include Alternative Names. + /// + public virtual bool IncludeAlternativeNames { get; set; } = true; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/NamesWithAlternativeRequired.cs b/DanishCvr/Requests/Models/NamesWithAlternativeRequired.cs new file mode 100644 index 0000000..ca0852d --- /dev/null +++ b/DanishCvr/Requests/Models/NamesWithAlternativeRequired.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Requests.Models; + +/// +/// Names With Alternative Required. +/// +public class NamesWithAlternativeRequired : NamesRequired +{ + /// + /// Include Alternative Names. + /// + public virtual bool IncludeAlternativeNames { get; set; } = true; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/Paging.cs b/DanishCvr/Requests/Models/Paging.cs new file mode 100644 index 0000000..70f8247 --- /dev/null +++ b/DanishCvr/Requests/Models/Paging.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Requests.Models; + +/// +/// Paging. +/// +public class Paging +{ + /// + /// Count. + /// + [Range(0, int.MaxValue)] + public virtual int Count { get; set; } = 25; + + /// + /// Skip. + /// + [Range(0, int.MaxValue)] + public virtual int Skip { get; set; } = 0; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/PersonSorting.cs b/DanishCvr/Requests/Models/PersonSorting.cs new file mode 100644 index 0000000..526856b --- /dev/null +++ b/DanishCvr/Requests/Models/PersonSorting.cs @@ -0,0 +1,14 @@ +using DanishCvr.Requests.Models.Enums; + +namespace DanishCvr.Requests.Models; + +/// +/// Person Sorting. +/// +public class PersonSorting : BaseSorting +{ + /// + /// By. + /// + public virtual PersonSortBy By { get; set; } = PersonSortBy.Relevance; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/ProductionUnitSorting.cs b/DanishCvr/Requests/Models/ProductionUnitSorting.cs new file mode 100644 index 0000000..3718ef4 --- /dev/null +++ b/DanishCvr/Requests/Models/ProductionUnitSorting.cs @@ -0,0 +1,14 @@ +using DanishCvr.Requests.Models.Enums; + +namespace DanishCvr.Requests.Models; + +/// +/// Production Unit Sorting. +/// +public class ProductionUnitSorting : BaseSorting +{ + /// + /// By. + /// + public virtual ProductionUnitSortBy By { get; set; } = ProductionUnitSortBy.Relevance; +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/SearchCompaniesCriteria.cs b/DanishCvr/Requests/Models/SearchCompaniesCriteria.cs new file mode 100644 index 0000000..88b68cd --- /dev/null +++ b/DanishCvr/Requests/Models/SearchCompaniesCriteria.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; +using DanishCvr.Types; + +namespace DanishCvr.Requests.Models; + +/// +/// Search Companies Criteria. +/// +public class SearchCompaniesCriteria +{ + /// + /// Names. + /// + public virtual NamesWithAlternative Names { get; set; } = new(); + + /// + /// Business Type Codes. + /// + public virtual IEnumerable BusinessTypeCodes { get; set; } = new List(); + + /// + /// Industry Codes. + /// + public virtual IEnumerable IndustryCodes { get; set; } = new List(); + + /// + /// Statuses. + /// + public virtual IEnumerable Statuses { get; set; } = new List(); + + /// + /// Founded At. + /// + public virtual Period FoundedAt { get; set; } = new(); + + /// + /// Dissolved At. + /// + public virtual Period DissolvedAt { get; set; } = new(); + + /// + /// Number Of Employees. + /// + public virtual Range NumberOfEmployees { get; set; } = new(); + + /// + /// Within. + /// + public virtual Within Within { get; set; } + + /// + /// Is Active. + /// + public virtual bool? IsActive { get; set; } + + /// + /// Is Social Economic. + /// + public virtual bool? IsSocialEconomic { get; set; } + + /// + /// Is Governmental. + /// + public virtual bool? IsGovernmental { get; set; } + + /// + /// Is Protected From Advertisment. + /// + public virtual bool? IsProtectedFromAdvertisment { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/SearchPersonCriteria.cs b/DanishCvr/Requests/Models/SearchPersonCriteria.cs new file mode 100644 index 0000000..a305600 --- /dev/null +++ b/DanishCvr/Requests/Models/SearchPersonCriteria.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using DanishCvr.Types; + +namespace DanishCvr.Requests.Models; + +/// +/// Search Person Criteria. +/// +public class SearchPersonCriteria +{ + /// + /// Name. + /// + [MinLength(3)] + public virtual string Name { get; set; } + + /// + /// Within. + /// + public virtual Within Within { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Requests/Models/SearchProductionUnitCriteria.cs b/DanishCvr/Requests/Models/SearchProductionUnitCriteria.cs new file mode 100644 index 0000000..8ccfdd9 --- /dev/null +++ b/DanishCvr/Requests/Models/SearchProductionUnitCriteria.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using DanishCvr.Types; + +namespace DanishCvr.Requests.Models; + +/// +/// Search Production Unit Criteria. +/// +public class SearchProductionUnitCriteria +{ + /// + /// Names. + /// + public virtual Names Names { get; set; } = new(); + + /// + /// Industry Codes. + /// + public virtual IEnumerable IndustryCodes { get; set; } = new List(); + + /// + /// Statuses. + /// + public virtual IEnumerable Statuses { get; set; } = new List(); + + /// + /// Number Of Employees. + /// + public virtual Range NumberOfEmployees { get; set; } = new(); + + /// + /// Within. + /// + public virtual Within Within { get; set; } + + /// + /// Is Active. + /// + public virtual bool? IsActive { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Requests/SearchCompaniesRequest.cs b/DanishCvr/Requests/SearchCompaniesRequest.cs new file mode 100644 index 0000000..3118785 --- /dev/null +++ b/DanishCvr/Requests/SearchCompaniesRequest.cs @@ -0,0 +1,8 @@ +using DanishCvr.Requests.Models; + +namespace DanishCvr.Requests; + +/// +/// Search Companies Request. +/// +public class SearchCompaniesRequest : BaseSearchRequest; \ No newline at end of file diff --git a/DanishCvr/Requests/SearchPersonsRequest.cs b/DanishCvr/Requests/SearchPersonsRequest.cs new file mode 100644 index 0000000..dd3f76d --- /dev/null +++ b/DanishCvr/Requests/SearchPersonsRequest.cs @@ -0,0 +1,8 @@ +using DanishCvr.Requests.Models; + +namespace DanishCvr.Requests; + +/// +/// Search Persons Request. +/// +public class SearchPersonsRequest : BaseSearchRequest; \ No newline at end of file diff --git a/DanishCvr/Requests/SearchProductionUnitsRequest.cs b/DanishCvr/Requests/SearchProductionUnitsRequest.cs new file mode 100644 index 0000000..2ca2781 --- /dev/null +++ b/DanishCvr/Requests/SearchProductionUnitsRequest.cs @@ -0,0 +1,8 @@ +using DanishCvr.Requests.Models; + +namespace DanishCvr.Requests; + +/// +/// Search Production Units Request. +/// +public class SearchProductionUnitsRequest : BaseSearchRequest; \ No newline at end of file diff --git a/DanishCvr/Resources/branchekoder.json b/DanishCvr/Resources/branchekoder.json new file mode 100644 index 0000000..2621098 --- /dev/null +++ b/DanishCvr/Resources/branchekoder.json @@ -0,0 +1,3692 @@ +[ + { + "Code": "011100", + "Title": "Dyrkning af korn (undtagen ris), b\u00E6lgfrugter og olieholdige fr\u00F8", + "Description": "Branchen omfatter dyrkning af alle former for korn (undtagen ris), herunder pseudo-korn (fx quinoa), b\u00E6lgfrugter og olieholdige fr\u00F8." + }, + { + "Code": "011200", + "Title": "Dyrkning af ris", + "Description": "Branchen omfatter dyrkning af ris." + }, + { + "Code": "011300", + "Title": "Dyrkning af gr\u00F8ntsager og meloner, r\u00F8dder og rodknolde", + "Description": "Branchen omfatter dyrkning af gr\u00F8ntsager og meloner, r\u00F8dder og rodknolde, fx agurker, tomater, kartofler, maniok og honningmeloner.Dyrkning af krydderiplanter og aromaplanter henvises til 01.28.00." + }, + { + "Code": "011400", + "Title": "Dyrkning af sukkerr\u00F8r", + "Description": "Branchen omfatter dyrkning af sukkerr\u00F8r. Dyrkning af sukkerroer henvises til 01.13.00." + }, + { + "Code": "011500", + "Title": "Dyrkning af tobak", + "Description": "Branchen omfatter dyrkning og den indledende forarbejdning af r\u00E5tobak." + }, + { + "Code": "011600", + "Title": "Dyrkning af tekstilplanter", + "Description": "Branchen omfatter dyrkning af tekstilplanter, fx bomuld, jute, h\u00F8r og hamp." + }, + { + "Code": "011900", + "Title": "Dyrkning af andre et\u00E5rige afgr\u00F8der", + "Description": "Branchen omfatter dyrkning af et\u00E5rige afgr\u00F8der, fx foderafgr\u00F8der, roefr\u00F8 og fr\u00F8 fra foderplanter samt dyrkning og fremstilling af blomster, afsk\u00E5rne blomster, blomsterknopper og blomsterfr\u00F8." + }, + { + "Code": "012100", + "Title": "Dyrkning af druer", + "Description": "Branchen omfatter dyrkning af druer, fx druer til presning og spisning. Fremstilling af vin henvises til 11.02.00." + }, + { + "Code": "012200", + "Title": "Dyrkning af tropiske og subtropiske frugter", + "Description": "Branchen omfatter dyrkning af tropiske og subtropiske frugter, fx avocado, ananas, bananer, dadler, figner, mango og papaya." + }, + { + "Code": "012300", + "Title": "Dyrkning af citrusfrugter", + "Description": "Branchen omfatter dyrkning af citrusfrugter, fx grapefrugt, citron, lime og appelsiner." + }, + { + "Code": "012400", + "Title": "Dyrkning af kernefrugter og stenfrugter", + "Description": "Branchen omfatter dyrkning af frugter med sten eller kerner som fx \u00E6bler, p\u00E6rer, kv\u00E6der, abrikoser, kirseb\u00E6r, ferskner, blommer og sl\u00E5en." + }, + { + "Code": "012500", + "Title": "Dyrkning af andre tr\u00E6frugter, b\u00E6r og n\u00F8dder", + "Description": "Branchen omfatter dyrkning af andre tr\u00E6frugter, b\u00E6r og n\u00F8dder, fx bl\u00E5b\u00E6r, ribs, solb\u00E6r, stikkelsb\u00E6r, hindb\u00E6r, jordb\u00E6r og kiwifrugter. Branchen omfatter ogs\u00E5 dyrkning af frugtfr\u00F8 samt dyrkning af spiselige n\u00F8dder, bortset fra kokosn\u00F8dder, som henvises til 01.26.00." + }, + { + "Code": "012600", + "Title": "Dyrkning af olieholdige frugter", + "Description": "Branchen omfatter dyrkning af olieholdige frugter, fx kokosn\u00F8dder, oliven og olieplanter. Dyrkning af sojab\u00F8nner, jordn\u00F8dder og andre olieholdige fr\u00F8 henvises til 01.11.00." + }, + { + "Code": "012700", + "Title": "Dyrkning af planter til fremstilling af drikkevarer", + "Description": "Branchen omfatter dyrkning af planter til fremstilling af drikkevarer, fx kaffe og te." + }, + { + "Code": "012800", + "Title": "Dyrkning af krydderiplanter, aromaplanter og l\u00E6geplanter", + "Description": "Branchen omfatter dyrkning af krydderiplanter, aromaplanter og l\u00E6geplanter som fx peber, chilipeber, muskatn\u00F8dder, anis, kartemomme, kanel, ingef\u00E6r, vanilje og humle." + }, + { + "Code": "012900", + "Title": "Dyrkning af andre fler\u00E5rige afgr\u00F8der", + "Description": "Branchen omfatter dyrkning af andre fler\u00E5rige afgr\u00F8der, fx juletr\u00E6er, tr\u00E6er til udvinding af tr\u00E6saft og plantemateriale til brug for fletning. Branchen omfatter ogs\u00E5 dyrkning af gummitr\u00E6er til udvinding af latex." + }, + { + "Code": "013000", + "Title": "Planteformering", + "Description": "Branchen omfatter fremstilling af stiklinger, rodskud, sideskud og kimplanter til direkte planteformering eller med henblik p\u00E5 podning til eventuel udplantning." + }, + { + "Code": "014100", + "Title": "Avl af malkekv\u00E6g", + "Description": "Branchen omfatter opdr\u00E6t og avl af malkekv\u00E6g, fx produktion af r\u00E5m\u00E6lk fra k\u00F8er eller b\u00F8fler og produktion af tyres\u00E6d af m\u00E6lkeracer. Forarbejdning af m\u00E6lk henvises til 10.51.00." + }, + { + "Code": "014200", + "Title": "Avl af andet kv\u00E6g og b\u00F8fler", + "Description": "Branchen omfatter opdr\u00E6t og avl af andet kv\u00E6g og b\u00F8fler til k\u00F8dproduktion samt produktion af tyres\u00E6d." + }, + { + "Code": "014300", + "Title": "Avl af heste og dyr af hestefamilien", + "Description": "Branchen omfatter opdr\u00E6t og avl af heste og dyr af hestefamilien, fx \u00E6sler, muldyr og mul\u00E6sler. Drift af stalde for v\u00E6ddel\u00F8bsheste og rideskoler henvises til 93.19.00." + }, + { + "Code": "014400", + "Title": "Avl af kameler og dyr af kamelfamilien", + "Description": "Branchen omfatter opdr\u00E6t og avl af kameler og dyr af kamelfamilien, fx dromedarer." + }, + { + "Code": "014500", + "Title": "Avl af f\u00E5r og geder", + "Description": "Branchen omfatter opdr\u00E6t og avl af f\u00E5r og geder samt produktion af r\u00E5 f\u00E5rem\u00E6lk og gedem\u00E6lk samt r\u00E5uld." + }, + { + "Code": "014610", + "Title": "Avl af sm\u00E5grise", + "Description": "Branchen omfatter avl af sm\u00E5grise." + }, + { + "Code": "014620", + "Title": "Produktion af slagtesvin", + "Description": "Branchen omfatter opdr\u00E6t og avl af slagtesvin." + }, + { + "Code": "014700", + "Title": "Fjerkr\u00E6avl", + "Description": "Branchen omfatter opdr\u00E6t og avl af fjerkr\u00E6, fx h\u00F8ns, kalkuner, \u00E6nder, g\u00E6s og perleh\u00F8ns. Branchen omfatter ogs\u00E5 \u00E6gproduktion og drift af fjerkr\u00E6rugerier. Produktion af fjer og dun henvises til 10.12.00." + }, + { + "Code": "014800", + "Title": "Avl af andre dyr", + "Description": "Branchen omfatter opdr\u00E6t og avl af k\u00E6ledyr, krybdyr, orme og biavl, bortset fra fisk. Branchen omfatter ogs\u00E5 produktion af skind fra opdr\u00E6ttede krybdyr eller fugle." + }, + { + "Code": "015000", + "Title": "Blandet landbrugsdrift", + "Description": "Branchen omfatter kombineret produktion af afgr\u00F8der og dyr, hvor hverken produktion af afgr\u00F8der eller opdr\u00E6t og avl af dyr er klart dominerende i indtjeningen." + }, + { + "Code": "016100", + "Title": "St\u00F8tteaktiviteter i forbindelse med planteavl", + "Description": "Branchen omfatter tjenesteydelser p\u00E5 honorar- eller kontraktbasis i forbindelse med planteavl, fx spr\u00F8jtning af afgr\u00F8der, besk\u00E6ring af frugttr\u00E6er, h\u00F8st, skadedyrsbek\u00E6mpelse (herunder kaniner) inden for landbrug, markvandingsudstyr, udlejning af landbrugsmaskiner med betjeningspersonale og mandskab. Forarbejdning af afgr\u00F8der efter h\u00F8st henvises til 01.63.00." + }, + { + "Code": "016200", + "Title": "St\u00F8tteaktiviteter i forbindelse med husdyravl", + "Description": "Branchen omfatter tjenesteydelser p\u00E5 honoar - eller kontraktbasis i forbindelse med husdyravl, fx beslagsmedes aktiviteter, f\u00E5reklipning, opstaldning og pasning af husdyr samt aktiviteter i forbindelse med kunstig inseminering." + }, + { + "Code": "016300", + "Title": "Forarbejdning af afgr\u00F8der efter h\u00F8st af fr\u00F8/s\u00E6dekorn til uds\u00E6d", + "Description": "Branchen omfatter aktiviteter p\u00E5 honorar- eller kontraktbasis i forbindelse med forarbejdning af afgr\u00F8der, fx rensning, kunstig modning af frugt som serviceydelse, t\u00F8rring og voksning af frugt mv." + }, + { + "Code": "017000", + "Title": "Jagt, f\u00E6ldefangst og serviceydelser i forbindelse hermed", + "Description": "Branchen omfatter jagt og f\u00E6ldefangst p\u00E5 kommerciel basis samt fangst af dyr med henblik p\u00E5 produktion af f\u00F8devarer og pelsv\u00E6rk eller til anvendelse inden for forskning, i zoologiske haver eller som k\u00E6ledyr. Branchen omfatter ogs\u00E5 landbaseret fangst af havpattedyr som fx hvalrosser og s\u00E6ler." + }, + { + "Code": "021000", + "Title": "Dyrkning af tr\u00E6er og andre skovbrugsaktiviteter", + "Description": "Branchen omfatter dyrkning af tr\u00E6er og andre skovbrugsaktiviteter, fx dyrkning af skovtr\u00E6er, lavskov og drift af skovplanteskoler. Dyrkning af juletr\u00E6er henvises til 01.29.00 og drift af tr\u00E6planteskoler, undtagen skovtr\u00E6er, henvises til 01.30.00." + }, + { + "Code": "022000", + "Title": "Skovning", + "Description": "Branchen omfatter produktion af rundt\u00F8mmer, indsamling og produktion af tr\u00E6 og tr\u00E6hugningsaffald til energi samt fremstilling af tr\u00E6kul i skoven." + }, + { + "Code": "023000", + "Title": "Indsamling af vildtvoksende forstmateriale, undtagen tr\u00E6er", + "Description": "Branchen omfatter indsamling af vildtvoksende forstmateriale, fx b\u00E6r, svampe, n\u00F8dder, mos og \u00E5legr\u00E6s." + }, + { + "Code": "024000", + "Title": "St\u00F8tteaktiviteter i forbindelse med skovbrug", + "Description": "Branchen omfatter serviceydelser til skovbrug, s\u00E5som konsulentbistand, skadedyrsbek\u00E6mpelse samt transport af tr\u00E6stammer i skoven og udlejning af skovbrugsmaskiner." + }, + { + "Code": "031100", + "Title": "Havfiskeri", + "Description": "Branchen omfatter havfiskeri p\u00E5 kommerciel basis, fx fangst og indsamling af vildtlevende fisk, krebs, hvaler, skildpadder, s\u00F8pindsvin mv. i hav og kystfarvande." + }, + { + "Code": "031200", + "Title": "Ferskvandsfiskeri", + "Description": "Branchen omfatter ferskvandsfiskeri p\u00E5 kommerciel basis samt fangst og indsamling af fisk, krebs- og bl\u00F8ddyr samt andre ferskvandslevende organismer i ferskvand." + }, + { + "Code": "032100", + "Title": "Havbrug", + "Description": "Branchen omfatter opdr\u00E6t i saltvand, fx af fisk, skaldyr og bl\u00F8ddyr samt opdr\u00E6t af yngel og dyrkning af tang. Akvakulturaktiviteter i brakvand er ogs\u00E5 omfattet." + }, + { + "Code": "032200", + "Title": "Ferskvandsbrug", + "Description": "Branchen omfatter opdr\u00E6t i ferskvand, fx af fisk, krebs og bl\u00F8ddyr samt fiskekl\u00E6kkerier og fr\u00F8opdr\u00E6t. Dyrkning af tang og alger er ogs\u00E5 omfattet." + }, + { + "Code": "033000", + "Title": "St\u00F8tteaktiviteter i forbindelse med fiskeri og akvakultur", + "Description": "Branchen omfatter serviceydelser til fiskeri eller akvakultur, fx fiskerikontrol og dykkerydelser til akvakultur. Forarbejdning af fisk og andre akvakulturprodukter p\u00E5 fabriksskibe eller p\u00E5 fabrikker p\u00E5 land henvises til 10.20.20." + }, + { + "Code": "051000", + "Title": "Indvinding af stenkul", + "Description": "Branchen omfatter under- eller overjordisk indvinding af stenkul." + }, + { + "Code": "052000", + "Title": "Indvinding af brunkul", + "Description": "Branchen omfatter indvinding af fast mineralsk br\u00E6ndstof som fx brunkul, herunder ogs\u00E5 vask, t\u00F8rring, pulverisering mv. af brunkul med henblik p\u00E5 kvalitetsforbedring, transport eller opbevaring." + }, + { + "Code": "061000", + "Title": "Indvinding af r\u00E5olie", + "Description": "Branchen omfatter indvinding af r\u00E5olie og produktion af r\u00E5olie fra asfaltskifer og olieholdigt sand. Genvinding af flydende gas i forbindelse med raffinering af r\u00E5olie henvises til 19.20.00." + }, + { + "Code": "062000", + "Title": "Indvinding af naturgas", + "Description": "Branchen omfatter produktion af naturgas og afsvovling af gas." + }, + { + "Code": "071000", + "Title": "Brydning af jernmalm", + "Description": "Branchen omfatter brydning af malm, oparbejdning og agglomerering af jernmalm.Brydning og forarbejdning af svovlkis og pyrrhotit henvises til 08.91.00." + }, + { + "Code": "072100", + "Title": "Brydning af uran- og thoriummalme", + "Description": "Branchen omfatter brydning af malme, som hovedsageligt indvindes pga. indholdet af uran og thorium. Branchen omfatter ogs\u00E5 koncentrering af disse malme samt fremstilling af yellow cake. Berigelse af uran og thoriummalme henvises til 20.13.00." + }, + { + "Code": "072900", + "Title": "Brydning af andre ikke-jernholdige metalmalme", + "Description": "Branchen omfatter brydning af andre ikke-jernholdige malme som fx kobber, bly, zink, tin, mangan, krom, nikkel mv., samt \u00E6delmetallerne guld, s\u00F8lv og platin. Produktion af kobbersten henvises til 24.44.00 og produktion af nikkelsten henvises til 24.45.00." + }, + { + "Code": "081100", + "Title": "Brydning af pyntesten, kalksten, gips, skifer mv.", + "Description": "Branchen omfatter brydning, hugning, knusning og grov tildannelse af monument- og byggesten (granit, sandsten og marmor), kalksten, gips, anhydrit, kridt og ukalcineret dolomit. Branchen omfatter endvidere produktion af granulat, flis og pulver af indvundet sten." + }, + { + "Code": "081200", + "Title": "Grus- og sandgravning og indvinding af ler og kaolin", + "Description": "Branchen omfatter indvinding og pumpning af industrisand, sand til byggerier og grus samt brydning og knusning af grus. Branchen omfatter ogs\u00E5 indvinding af ler, sand og kaolin. Indvinding af olieholdigt sand henvises til 06.10.00." + }, + { + "Code": "089100", + "Title": "Indvinding af mineraler til fremstilling af kemiske produkter og g\u00F8dningsstoffer", + "Description": "Branchen omfatter indvinding af naturlige fosfater, kaliumsalte, frit svovl, naturlige magnesiumsulfater, jordpigmenter mv., som hovedsaglig udnyttes som kilde til kemiske stoffer." + }, + { + "Code": "089200", + "Title": "Indvinding af t\u00F8rv", + "Description": "Branchen omfatter t\u00F8rvegravning og forarbejdning for at forbedre kvaliteten, lette transporten eller opbevaringen af t\u00F8rv. Fremstilling af t\u00F8rveprodukter eller t\u00F8rvebriketter henvises til hhv. 23.99.90 og 19.20.00." + }, + { + "Code": "089300", + "Title": "Saltindvinding", + "Description": "Branchen omfatter indvinding af salt fra undergrunden ved opl\u00F8sning og pumpning. Branchen omfatter ogs\u00E5 knusning, oprensning og raffinering af salt udf\u00F8rt af producenten. Fremstilling af bordsalt henvises til 10.84.00." + }, + { + "Code": "089900", + "Title": "Anden r\u00E5stofindvinding i.a.n.", + "Description": "Branchen omfatter indvinding og brydning af forskellige mineraler og materialer, fx slibematerialer, asbest, fossilt kiselmel, naturligt grafit, fedtsten, \u00E6delsten mv." + }, + { + "Code": "091000", + "Title": "St\u00F8tteaktiviteter i forbindelse med indvinding af r\u00E5olie og naturgas", + "Description": "Branchen omfatter serviceydelser (p\u00E5 honorar- eller kontraktbasis) i forbindelse med indvinding af r\u00E5olie og naturgas, som fx opf\u00F8relse, reparation eller demontering af boret\u00E5rne samt pr\u00F8veboringer eller brandslukning i forbindelse med olie- eller gasindvinding. Geologiske unders\u00F8gelser henvises til 71.12.40." + }, + { + "Code": "099000", + "Title": "St\u00F8tteaktiviteter i forbindelse med anden r\u00E5stofindvinding", + "Description": "Branchen omfatter st\u00F8tteaktiviteter (p\u00E5 honorar- eller kontraktbasis) i forbindelse med r\u00E5stofindvinding, fx efterforskning ved at udtage borepr\u00F8ver og lave geologiske observationer. Branchen omfatter ogs\u00E5 serviceydelser i forbindelse med dr\u00E6ning og pumpning. Geofysiske unders\u00F8gelser p\u00E5 honorar- eller kontraktbasis henvises til 71.12.40." + }, + { + "Code": "101110", + "Title": "Forarbejdning af svinek\u00F8d", + "Description": "Branchen omfatter drift af svineslagterier, aflivning, forarbejdning eller emballering, herunder fremstilling af fersk, k\u00F8let eller frossent svinek\u00F8d i hele kroppe eller udsk\u00E6ringer. Branchen omfatter ogs\u00E5 forarbejdning af svinefedt og slagteaffald." + }, + { + "Code": "101190", + "Title": "Forarbejdning af andet k\u00F8d", + "Description": "Branchen omfatter slagtning af andre dyr end svin og fjerkr\u00E6, aflivning, forarbejdning eller emballering herunder fremstilling af fersk, k\u00F8let eller frossent k\u00F8d i hele kroppe eller udsk\u00E6ringer. Fremstilling af kradsuld er ogs\u00E5 omfattet. Fremstilling af t\u00F8rret, saltet eller r\u00F8get k\u00F8d og k\u00F8dprodukter henvises til 10.13.00." + }, + { + "Code": "101200", + "Title": "Forarbejdning og konservering af fjerkr\u00E6k\u00F8d", + "Description": "Branchen omfatter slagtning, forarbejdning og emballering af fjerkr\u00E6 samt fremstilling af fersk, k\u00F8let eller frosset k\u00F8d samt udsmeltning af spiseligt fedt fra fjerkr\u00E6 og behandling af fjer og dun." + }, + { + "Code": "101300", + "Title": "Fremstilling af k\u00F8d- og fjerkr\u00E6k\u00F8dprodukter", + "Description": "Branchen omfatter fremstilling af t\u00F8rret, saltet eller r\u00F8get k\u00F8d samt p\u00F8lser, pat\u00E9er, postejer, kogt skinke mv." + }, + { + "Code": "102010", + "Title": "Fremstilling af fiskemel", + "Description": "Branchen omfatter fremstilling af fiskemel til konsum eller dyrefoder samt mel, der ikke er egnet til konsum." + }, + { + "Code": "102020", + "Title": "Forarbejdning og konservering af fisk, krebsdyr og bl\u00F8ddyr, undtagen fiskemel", + "Description": "Branchen omfatter forarbejdning og konservering af fisk, krebsdyr og bl\u00F8ddyr, herunder dybfrysning, t\u00F8rring og andre forarbejdningsformer, fx konservering. Branchen omfatter ogs\u00E5 fremstilling af produkter fra fisk, krebsdyr og bl\u00F8ddyr fra salt- og ferskvand, fx fileter eller rogn." + }, + { + "Code": "103100", + "Title": "Forarbejdning og konservering af kartofler", + "Description": "Branchen omfatter forarbejdning og konservering af kartofler, fx fremstilling af frosne kartofler, kartoffelsnacks og kartoffelmel samt skr\u00E6lning og sk\u00E6ring af kartofler." + }, + { + "Code": "103200", + "Title": "Fremstilling af frugt- og gr\u00F8ntsagssaft", + "Description": "Branchen omfatter fremstilling af frugt- eller gr\u00F8ntsagssaft samt koncentrater." + }, + { + "Code": "103900", + "Title": "Anden forarbejdning og konservering af frugt og gr\u00F8ntsager", + "Description": "Branchen omfatter fremstilling af produkter fra frugt og gr\u00F8ntsager samt konservering af frugt, gr\u00F8ntsager og n\u00F8dder, fx syltet\u00F8j, marmelade, n\u00F8ddepasta mv. Branchen omfatter ogs\u00E5 fremstilling af emballerede salater og tofu. Fremstilling af f\u00E6rdiglavede gr\u00F8ntssagsretter henvises til 10.85.00." + }, + { + "Code": "104100", + "Title": "Fremstilling af olier og fedtstoffer", + "Description": "Branchen omfatter fremstilling af r\u00E5 og raffinerede vegetabilske olier, fx oliven-, soja-, raps- og solsikkeolie. Fremstilling af ikke-spiselige animalske olier og fedtstoffer er ogs\u00E5 omfattet, inklusive olier fra fisk og havpattedyr. Fremstilling af majsolie henvises til 10.62.00." + }, + { + "Code": "104200", + "Title": "Fremstilling af margarine o.lign. spiselige fedtstoffer", + "Description": "Branchen omfatter fremstilling af margarine og lignende spiselige fedtstoffer, fx sm\u00F8rbare blandingsprodukter." + }, + { + "Code": "105100", + "Title": "Fremstilling af mejeriprodukter", + "Description": "Branchen omfatter fremstilling af m\u00E6lk, sm\u00F8r, ost og andre mejeriprodukter. Fremstilling af mejeribaseret moderm\u00E6lkserstatning henvises til 10.86.00 og fremstilling af plantebaserede m\u00E6lkeerstatninger (fx kokos-, ris-, mandel-, havre- eller sojabaserede drikke) henvises til 11.07.00." + }, + { + "Code": "105200", + "Title": "Fremstilling af konsumis", + "Description": "Branchen omfatter fremstilling af is og sorbet (til konsum)." + }, + { + "Code": "106100", + "Title": "Fremstilling af m\u00F8lleriprodukter", + "Description": "Branchen omfatter fremstilling af m\u00F8lleriprodukter, fx mel, melblandinger, gryn, morgenmadsprodukter samt formaling af ris, n\u00F8dder og gr\u00F8ntsager. Fremstilling af kartoffelmel henvises til 10.31.00." + }, + { + "Code": "106200", + "Title": "Fremstilling af stivelse og stivelsesprodukter", + "Description": "Branchen omfatter fremstilling af stivelse (af ris, kartofler, majs mv.) og stivelsesprodukter (fx glukose, maltose, tapioka og gluten)." + }, + { + "Code": "107110", + "Title": "Industriel fremstilling af br\u00F8d og kager mv.", + "Description": "Branchen omfatter industriel fremstilling af bagv\u00E6rk, fx br\u00F8d, wienerbr\u00F8d, kager mv., samt frossent bagv\u00E6rk." + }, + { + "Code": "107120", + "Title": "Fremstilling af friske bageriprodukter", + "Description": "Branchen omfatter fremstilling af friskt bagv\u00E6rk fx, br\u00F8d, wienerbr\u00F8d, kager, vafler mv. Fremstilling af t\u00F8rt bagv\u00E6rk henvises til 10.72.00." + }, + { + "Code": "107200", + "Title": "Fremstilling af tvebakker, kiks, konserverede kager, t\u00E6rter mv.", + "Description": "Branchen omfatter fremstilling af tvebakker, kiks og andet t\u00F8rt bagv\u00E6rk samt konserverede kager uanset om de er s\u00F8de eller salte." + }, + { + "Code": "107300", + "Title": "Fremstilling af dejprodukter", + "Description": "Branchen omfatter fremstilling af pasta og couscous." + }, + { + "Code": "108100", + "Title": "Fremstilling af sukker", + "Description": "Branchen omfatter fremstilling og raffinering af sukker og sukkererstatninger af saft fra sukkerr\u00F8r, sukkerroer, ahorn og palme samt fremstilling af melasse og sirup." + }, + { + "Code": "108200", + "Title": "Fremstilling af kakao, chokolade og sukkervarer", + "Description": "Branchen omfatter fremstilling af kakao, kakaosm\u00F8r og chokoladevarer samt slik, fx karameller, pastiller, nougat, tyggegummi, herunder ogs\u00E5 sukkerkonservering af frugt, n\u00F8dder mv." + }, + { + "Code": "108300", + "Title": "Forarbejdning af te og kaffe", + "Description": "Branchen omfatter ristning af kaffe og fremstilling af kaffeprodukter, fx pulverkaffe, kaffeekstrakter og kaffeerstatninger, samt fremstilling af teblandinger, ekstrakter og produkter baseret p\u00E5 te." + }, + { + "Code": "108400", + "Title": "Fremstilling af smagspr\u00E6parater og krydderier", + "Description": "Branchen omfatter fremstilling af krydderier, saucer og tilbeh\u00F8r, fx sennep, mayonnaise og eddike." + }, + { + "Code": "108500", + "Title": "Fremstilling af f\u00E6rdigretter", + "Description": "Branchen omfatter fremstilling af f\u00E6rdigretter, fx af k\u00F8d, fisk, fjerkr\u00E6, pasta og gr\u00F8ntsager." + }, + { + "Code": "108600", + "Title": "Fremstilling af homogeniserede produkter og di\u00E6tmad", + "Description": "Branchen omfatter fremstilling af f\u00F8devarer til s\u00E6rlig ern\u00E6ring, fx moderm\u00E6lkserstatning, babymad og f\u00F8devarer til medicinske form\u00E5l. Fremstilling af f\u00F8devarer med lavt energiindhold til fx v\u00E6gtkontrol er ogs\u00E5 omfattet." + }, + { + "Code": "108900", + "Title": "Fremstilling af andre f\u00F8devarer i.a.n.", + "Description": "Branchen omfatter fremstilling af andre f\u00F8devarer, fx friske pizzaer, sandwiches mv. Branchen omfatter ogs\u00E5 fremstilling af supper, bouillon, g\u00E6r, kunsthonning mv.Fremstilling af plantebaserede m\u00E6lkeerstatninger (fx kokos-, ris-, mandel-, havre- eller sojabaserede drikke) henvises til 11.07.00 og fremstilling af sm\u00F8rrebr\u00F8d til umiddelbar fort\u00E6ring henvises til 56.11.90." + }, + { + "Code": "109100", + "Title": "Fremstilling af f\u00E6rdige foderblandinger til landbrugsdyr", + "Description": "Branchen omfatter fremstilling af foder til landbrugsdyr og hav- og dambrug, herunder ogs\u00E5 foder fra slagteaffald. Fremstilling af foder til k\u00E6ledyr henvises til 10.92.00." + }, + { + "Code": "109200", + "Title": "Fremstilling af f\u00E6rdige foderblandinger til k\u00E6ledyr", + "Description": "Branchen omfatter fremstilling af foderblandinger til k\u00E6ledyr, fx hunde, katte, fugle, fisk mv." + }, + { + "Code": "110100", + "Title": "Destillation, rektifikation og blanding af alkohol", + "Description": "Branchen omfatter fremstilling af destillerede alkoholiske drikkevarer (fx whisky, brandy, gin, lik\u00F8rer mv.) og neutral spiritus." + }, + { + "Code": "110200", + "Title": "Fremstilling af vin af druer", + "Description": "Branchen omfatter fremstilling af vin fra druer, fx mousserende vin og vin fra mostkoncentrat, herunder eventuel blanding, rensning og tapning af vin p\u00E5 flasker. Branchen omfatter ogs\u00E5 alkoholfri vin.Branchen omfatter ikke tapning ved engroshandel eller p\u00E5 kontraktbasis." + }, + { + "Code": "110300", + "Title": "Fremstilling af cider og andre g\u00E6rede drikkevarer af frugt", + "Description": "Branchen omfatter fremstilling af g\u00E6rede, ikke-destillerede alkoholiske drikkevarer, fx cider og andre frugtvine, samt fremstilling af miksturer til hhv. g\u00E6rede og alkoholfrie drikkevarer." + }, + { + "Code": "110400", + "Title": "Fremstilling af andre ikke-destillerede g\u00E6rede drikkevarer", + "Description": "Branchen omfatter fremstilling af aromatiseret vin fra friske druer krydret med aromatiske stoffer." + }, + { + "Code": "110500", + "Title": "Fremstilling af \u00F8l", + "Description": "Branchen omfatter fremstilling af drikkevarer baseret p\u00E5 malt, fx \u00F8l eller porter. Branchen omfatter ogs\u00E5 alkoholfrie \u00F8l." + }, + { + "Code": "110600", + "Title": "Fremstilling af malt", + "Description": "Branchen omfatter fremstilling af malt fra byg, hvede eller andre kornsorter." + }, + { + "Code": "110700", + "Title": "Fremstilling af l\u00E6skedrikke og vand p\u00E5 flaske", + "Description": "Branchen omfatter fremstilling af sodavand og andre l\u00E6skedrikke (uden alkohol), mineralvand og andet vand p\u00E5 flaske med eller uden tilsat smag og s\u00F8destof. Branchen omfatter ogs\u00E5 fremstilling af plantebaserede m\u00E6lkeerstatninger (fx kokos-, ris-, mandel-, havre- eller sojabaserede drikke).Branchen omfatter ikke frugt- og gr\u00F8ntsagssaft eller -juice, som henvises til 10.32.00." + }, + { + "Code": "120000", + "Title": "Fremstilling af tobaksvarer", + "Description": "Branchen omfatter fremstilling af tobaksvarer og produkter af tobakserstatninger. Branchen omfatter ogs\u00E5 homogeniseret eller rekonsitueret tobak. Dyrkning og indledende forarbejdning af tobak henvises til 01.63.00 og dampv\u00E6sker til e-cigaretter til 20.59.00." + }, + { + "Code": "131000", + "Title": "Forbehandling og spinding af tekstilfibre", + "Description": "Branchen omfatter oprulning og vask af silke og uld, affedtning, karbonisering og farvning af ny uld, samt kartning, k\u00E6mning, spinding og fremstilling af garn eller tr\u00E5d til v\u00E6vning.Forarbejdning af tekstilaffald til sekund\u00E6re r\u00E5materialer henvises til 38.21.00." + }, + { + "Code": "132000", + "Title": "V\u00E6vning af tekstiler", + "Description": "Branchen omfatter v\u00E6vning af tekstiler af forskellige r\u00E5materialer uanset om det er nye fibre eller genanvendte tekstiler, fx bomuld, uld, silke, h\u00F8r og kinagr\u00E6s og hamp samt imiteret pels fra v\u00E6vning." + }, + { + "Code": "133000", + "Title": "Efterbehandling af tekstiler", + "Description": "Branchen omfatter efterbehandling af tekstiler og bekl\u00E6dningsartikler, fx blegning og farvning, samt forarbejdning af disse. Branchen omfatter ogs\u00E5 printning og overfaldebehandling af bekl\u00E6dningsgenstande. Printning, herunder silketryk, p\u00E5 tekstiler og bekl\u00E6dningsartikler, som ikke er del af fremstillingen af tekstiler, henvises til 18.12.00." + }, + { + "Code": "139100", + "Title": "Fremstilling af trikotagestoffer", + "Description": "Branchen omfatter fremstilling af strikkede eller h\u00E6klede stoffer, stoffer med luv og frott\u00E9 samt fremstilling af imiteret pels ved strikning." + }, + { + "Code": "139200", + "Title": "Fremstilling af tekstiler til husholdningsbrug og f\u00E6rdige boligtekstiler", + "Description": "Branchen omfatter fremstilling af f\u00E6rdige tekstiler af ethvert tekstilmateriale til husholdningsbrug, fx t\u00E6pper, linned til senge, borde og k\u00F8kken, puder, dyner, flag og klude. Branchen omfatter ogs\u00E5 fremstilling af tekstildelen til varmet\u00E6pper og h\u00E5ndv\u00E6vede gobeliner. Fremstilling af tekstiler til teknisk brug henvises til 13.96.00." + }, + { + "Code": "139300", + "Title": "Fremstilling af gulvt\u00E6pper og -m\u00E5tter", + "Description": "Branchen omfatter fremstilling af gulvt\u00E6pper, m\u00E5tter og anden gulvbel\u00E6gning af tekstil, n\u00E5lefilt eller kunstgr\u00E6s." + }, + { + "Code": "139400", + "Title": "Fremstilling af reb, tovv\u00E6rk, sejlgarn og netstoffer", + "Description": "Branchen omfatter fremstilling af sejlgarn, reb, tovv\u00E6rk af tekstilfibre mv., fx fiskenet. Fremstilling af fangstnet til sportsfiskeri henvises til 32.30.00." + }, + { + "Code": "139500", + "Title": "Fremstilling af fiberdug og varer af fiberdug", + "Description": "Branchen omfatter fremstilling af fiberdugdele, fx forbinding til s\u00E5rpleje eller v\u00E5dservietter til babyer." + }, + { + "Code": "139600", + "Title": "Fremstilling af andre tekniske og industrielle tekstiler", + "Description": "Branchen omfatter fremstilling af smaltv\u00E6vet stof, fx dekorativt pynt, tekstiler, belagte stoffer, malerl\u00E6rreder og presenninger samt stoffer af glasfibre. Branchen omfatter ogs\u00E5 fremstilling af presenninger, telte og solsk\u00E6rme. Fremstilling af dug af v\u00E6vet metaltr\u00E5d henvises til 25.93.00." + }, + { + "Code": "139900", + "Title": "Fremstilling af andre tekstiler i.a.n.", + "Description": "Branchen omfatter fremstilling af andre tekstiler, fx filt, tyl, blonde og broderi, selvkl\u00E6bende tape og sn\u00F8reb\u00E5nd af tekstil." + }, + { + "Code": "141000", + "Title": "Fremstilling af strikkede og h\u00E6klede bekl\u00E6dningsartikler", + "Description": "Branchen omfatter fremstilling af trikotage, fx strikkede eller h\u00E6klede tights og str\u00F8mper samt andre strikkede eller h\u00E6klede bekl\u00E6dningsartikler." + }, + { + "Code": "142100", + "Title": "Fremstilling af yderbekl\u00E6dning", + "Description": "Branchen omfatter fremstilling af yderbekl\u00E6dning, fx jakker, busker, mv., samt skr\u00E6ddersyet t\u00F8j, bortset fra trikotage. Fremstilling af bekl\u00E6dningsartikler af gummi eller plast henvises til 22.12.00 eller 22.26.00. Reparation og skr\u00E6ddertilpasning af t\u00F8j henvises til 95.29.00." + }, + { + "Code": "142200", + "Title": "Fremstilling af underbekl\u00E6dning", + "Description": "Branchen omfatter fremstilling af undert\u00F8j, natt\u00F8j og badet\u00F8j, undtagen trikotagevarer." + }, + { + "Code": "142300", + "Title": "Fremstilling af arbejdsbekl\u00E6dning", + "Description": "Branchen omfatter fremstilling af arbejdsbekl\u00E6dning, fx uniformer og anden officiel bekl\u00E6dning." + }, + { + "Code": "142400", + "Title": "Fremstilling af bekl\u00E6dningsartikler af l\u00E6der og pelsskind", + "Description": "Branchen omfatter fremstilling af bekl\u00E6dningsartikler og t\u00F8jtilbeh\u00F8r, fx af pels eller pelsskind." + }, + { + "Code": "142900", + "Title": "Fremstilling af andre bekl\u00E6dningsartikler samt tilbeh\u00F8r i.a.n.", + "Description": "Branchen omfatter fremstilling af sportst\u00F8j af bredv\u00E6vet stof, fx tr\u00E6ningsdragter, skit\u00F8j og andet teknisk sportst\u00F8j samt hoved- og h\u00E5ndbekl\u00E6dning, men ogs\u00E5 b\u00E6lter og slips." + }, + { + "Code": "151100", + "Title": "Garvning, beredning og farvning af l\u00E6der og pelsskind", + "Description": "Branchen omfatter garvning, farvning og beredning af huder og skind samt fremstilling af semsgarvet, pergamentbehandlet l\u00E6der, lakl\u00E6der, metaliseret l\u00E6der og kunstl\u00E6der. Branchen omfatter ogs\u00E5 afskrabning, f\u00E6rdigberedning, garvning og farvning af huder med h\u00E5r." + }, + { + "Code": "151200", + "Title": "Fremstilling af tasker, kufferter, sadelmagervarer mv., uanset materialets art", + "Description": "Branchen omfatter fremstilling af kufferter, tasker mv. af l\u00E6der og af andre materialer, hvor der anvendes samme fremstillingsteknologi som til l\u00E6der. Branchen omfatter ogs\u00E5 fremstilling af sadler, selet\u00F8j, ridepiske mv." + }, + { + "Code": "152000", + "Title": "Fremstilling af fodt\u00F8j", + "Description": "Branchen omfatter fremstilling af almindeligt fodt\u00F8j af ethvert materiale samt l\u00E6derdele til fodt\u00F8j (s\u00E5ler, h\u00E6le, overdele mv.). Fremstilling af ortop\u00E6diske sko henvises til branche 32.50.00." + }, + { + "Code": "161100", + "Title": "Udsavning og h\u00F8vling af tr\u00E6", + "Description": "Branchen omfatter savning, h\u00F8vling og maskinforarbejdning af tr\u00E6, anden tilsk\u00E6ring og fremstilling af tr\u00E6 til jernbaner, gulvbr\u00E6dder mv. Fremstilling af br\u00E6nde eller presset tr\u00E6 henvises til 16.26.00." + }, + { + "Code": "161200", + "Title": "Forarbejdning og f\u00E6rdigbearbejdning af tr\u00E6", + "Description": "Branchen omfatter forarbejdning og f\u00E6rdigbearbejdning af tr\u00E6, som typisk udf\u00F8res p\u00E5 honorar- eller kontraktbasis, fx udboring, t\u00F8rring og behandling af tr\u00E6 i uf\u00E6rdig form med maling, bejdsning eller andre konserveringsmidler. Overfladebehandling, impr\u00E6gnering eller kemisk behandling af tr\u00E6varer henvises til 16.27.00." + }, + { + "Code": "162100", + "Title": "Fremstilling af finerplader og tr\u00E6baserede plader", + "Description": "Branchen omfatter fremstilling af finerplader, krydsfiner, OSB-plader, MDF-plader, presset tr\u00E6 og limtr\u00E6 samt isoleringfiberplader af tr\u00E6 eller andre tr\u00E6agtige materialer." + }, + { + "Code": "162200", + "Title": "Fremstilling af sammensatte parketstave", + "Description": "Branchen omfatter fremstilling af parketstave, der samles til gulvbr\u00E6dder." + }, + { + "Code": "162300", + "Title": "Fremstilling af bygningst\u00F8mmer og snedkeriartikler i \u00F8vrigt", + "Description": "Branchen omfatter fremstilling af tr\u00E6varer til byggesektoren, fx bj\u00E6lker, sp\u00E6r, trapper, gel\u00E6ndere og saunaer." + }, + { + "Code": "162400", + "Title": "Fremstilling af tr\u00E6emballage", + "Description": "Branchen omfatter fremstilling af emballage af tr\u00E6, fx kasser, kabeltromler, kar, t\u00F8nder og paller." + }, + { + "Code": "162500", + "Title": "Fremstilling af d\u00F8re og vinduer af tr\u00E6", + "Description": "Branchen omfatter fremstilling af d\u00F8re, vinduer og skodder i tr\u00E6 samt rammer hertil." + }, + { + "Code": "162600", + "Title": "Fremstilling af fast br\u00E6ndsel p\u00E5 basis af vegetabilsk biomasse", + "Description": "Branchen omfatter fremstilling af briketter, br\u00E6ndeknuder og piller fra savsmuld, overskudstr\u00E6, tr\u00E6affald mv. Fremstilling af t\u00F8rvebriketter henvises til 19.20.00." + }, + { + "Code": "162700", + "Title": "F\u00E6rdigbearbejdning af tr\u00E6varer", + "Description": "Branchen omfatter raffinering eller beskyttelse af tr\u00E6overflader, der d\u00E6kker over diverse overfaldebehandlinger, fx impr\u00E6gnering, polering, oliering og lakering. Ompolstring, omlakering og reparation af m\u00F8bler henvises til 95.24.00." + }, + { + "Code": "162800", + "Title": "Fremstilling af andre tr\u00E6varer og varer af kork, str\u00E5 og flettematerialer", + "Description": "Branchen omfatter fremstilling af \u00F8vrige varer af tr\u00E6, fx d\u00F8rgreb, tr\u00E6statuer, k\u00F8kkengrej, skoelementer og billedrammer, samt varer af kork, fx til flasker og gulvbekl\u00E6dning, samt varer af str\u00E5 og flettevarer. Fremstilling af trisser og n\u00F8gler, som er en del af tekstilmaskinerne, henvises til 28.94.00." + }, + { + "Code": "171100", + "Title": "Fremstilling af papirmasse", + "Description": "Branchen omfatter fremstilling af papirmasse, som kan v\u00E6re dannet ved mekaniske eller kemiske processer, og inkluderer fjernelse af tryksv\u00E6rte." + }, + { + "Code": "171200", + "Title": "Fremstilling af papir og pap", + "Description": "Branchen omfatter fremstilling af papir og pap til yderligere industriel forarbejdning, fx overfladebehandling, bel\u00E6gning og impr\u00E6gnering (sekund\u00E6r bestanddel), fremstilling af h\u00E5ndlavet papir, avispapir og karbonpapir. Fremstilling af b\u00F8lgepapir og -pap henvises til 17.21.00." + }, + { + "Code": "172100", + "Title": "Fremstilling af b\u00F8lgepap, pap og emballage af papir og pap", + "Description": "Branchen omfatter fremstilling af emballage af papir og pap samt b\u00F8lgepap og -papir. Branchen omfatter ogs\u00E5 fremstilling af fx \u00E6sker, kartoner, poser og s\u00E6kke af papir og pap. \u00C6ggebakker og anden emballage, der er fremstillet af st\u00F8bt eller presset papirmasse, henvises til 17.25.00." + }, + { + "Code": "172200", + "Title": "Fremstilling af husholdningsartikler og hygiejneartikler samt toiletartikler af papir og pap", + "Description": "Branchen omfatter fremstilling af husholdningspapir, papir til personlig hygiejne og andre produkter, fx renseservietter, toiletpapir og engangsservice." + }, + { + "Code": "172300", + "Title": "Fremstilling af kontorartikler af papir", + "Description": "Branchen omfatter fremstilling af kontorartikler af papir, fx skrivepapir, printerpapir, kuverter og notesb\u00F8ger." + }, + { + "Code": "172400", + "Title": "Fremstilling af tapet", + "Description": "Branchen omfatter fremstilling af tapet og lignende v\u00E6gbekl\u00E6dning. Plasttapet henvises til 22.26.00." + }, + { + "Code": "172500", + "Title": "Fremstilling af andre papir- og papvarer", + "Description": "Branchen omfatter andre papir- og papvarer, fx filtrerpapir, cigaretpapir, trisser, spoler og papirgadgets og papkort." + }, + { + "Code": "181100", + "Title": "Trykning af dagblade", + "Description": "Branchen omfatter trykning af dagblade mv., der udkommer mindst 4 gange om ugen." + }, + { + "Code": "181200", + "Title": "Anden trykning", + "Description": "Branchen omfatter trykning af magasiner og tidskrifter, der udkommer mindre end fire gange om ugen, samt trykning af b\u00F8ger og brochurer, frim\u00E6rker, kort, plakater, etiketter og anden trykt reklame. Fremstilling af spillekort, trykning af fotografier samt tryk til annoncering er ogs\u00E5 omfattet." + }, + { + "Code": "181300", + "Title": "Prepress- og premedia-arbejde", + "Description": "Branchen omfatter forberedende arbejder inden trykning (fysisk eller digitalt), fx s\u00E6tning, forpresning af datainput, udarbejdelse af datafiler, forberedelse af plader mv." + }, + { + "Code": "181400", + "Title": "Bogbinding og lignende serviceydelser", + "Description": "Branchen omfatter serviceydelser i forbindelse med f\u00E6rdigbearbejdning af b\u00F8ger, tryksager og optiske medier (fx cd-rom eller dvd), fx foldning, h\u00E6ftning, laminering, pr\u00E6gning og gravering." + }, + { + "Code": "182000", + "Title": "Reproduktion af indspillede medier", + "Description": "Branchen omfatter reproduktion af grammofonplader, cd\u0027er, b\u00E5nd mv., fx med musik eller film. Fremstilling og distribution af film, videob\u00E5nd og dvd\u0027er eller lignende medier henvises til 59.11.00, 59.12.00 og 59.13.00." + }, + { + "Code": "191000", + "Title": "Fremstilling af koksovnsprodukter", + "Description": "Branchen omfatter fremstilling af koks, beg, r\u00E5kul og brunkulstj\u00E6re. Fremstilling af briketter henvises til 19.20.00." + }, + { + "Code": "192000", + "Title": "Fremstilling af raffinerede mineralolieprodukter og fossile br\u00E6ndstoffer", + "Description": "Branchen omfatter fremstilling af raffinerede mineralolieprodukter og fossile br\u00E6ndstoffer, fx br\u00E6ndstof, motorbr\u00E6ndstof, sm\u00F8reolier og oliebriketter, inkl. forskellige produkter fra spildolie.Fremstilling af fast br\u00E6ndsel fra biomasse henvises til 16.26.00." + }, + { + "Code": "201100", + "Title": "Fremstilling af industrigasser", + "Description": "Branchen omfatter fremstilling af flydende eller komprimerede uorganiske industrigasser eller medicinske gasser, fx k\u00F8legasser, \u00E6delgasser og isoleringsgas. Fremstilling af br\u00E6ndgas, fx \u00E6tan, butan eller propan i et olieraffinaderi henvises til 19.20.00." + }, + { + "Code": "201200", + "Title": "Fremstilling af farvestoffer og pigmenter", + "Description": "Branchen omfatter fremstilling af farvestoffer og pigmenter, fx til fremstilling af optisk hvidt. Fremstilling af f\u00E6rdiglavede farvestoffer og pigmenter henvises til 20.30.00." + }, + { + "Code": "201300", + "Title": "Fremstilling af andre uorganiske basiskemikalier", + "Description": "Branchen omfatter fremstilling af kemiske grundstoffer (undtagen industrigasser og basismetaller), fx uorganiske syrer, undtagen salpetersyre." + }, + { + "Code": "201400", + "Title": "Fremstilling af andre organiske basiskemikalier", + "Description": "Branchen omfatter fremstilling af organiske basiskemikalier, fx acyklisk carbonhybrid, aldehyder og aminer samt g\u00E6ring af sukkerr\u00F8r (fx til produktion af alkohol).Branchen omfatter ogs\u00E5 fremstilling af ethanol, bortset fra bioethanolbr\u00E6ndstof, som henvises til 20.51.00." + }, + { + "Code": "201500", + "Title": "Fremstilling af g\u00F8dningsstoffer og nitrogenprodukter", + "Description": "Branchen omfatter fremstilling af g\u00F8dningsstoffer og nitrogenprodukter, fx carbamid, salpetersyre, pottemuld samt fremstillinger af andre g\u00F8dningsstoffer, fx ved hj\u00E6lp af kemisk behandling af animalske eller vegetabilske produkter." + }, + { + "Code": "201600", + "Title": "Fremstilling af plast i ubearbejdet form", + "Description": "Branchen omfatter fremstilling af polymerer, forskellige former for harpiks, cellulose, plastpulvere og granulater samt genanvendt plast." + }, + { + "Code": "201700", + "Title": "Fremstilling af syntetisk gummi i ubearbejdet form", + "Description": "Branchen omfatter fremstilling af syntetisk gummi, fx syntetisk gummi og factis samt fremstilling af blandinger af syntetisk gummi og naturgummi." + }, + { + "Code": "202000", + "Title": "Fremstilling af pesticider, desinfektionsmidler og andre agrokemiske produkter", + "Description": "Branchen omfatter fremstilling af bek\u00E6mpelsesmidler, fx til at bek\u00E6mpe insekter, gnavere, svampe, ukrudt og snegle, samt fremstilling af planteve\u00E6kstreguleringsmidler, desinfektionsmidler (til landbrug) og agrokemiske produkter." + }, + { + "Code": "203000", + "Title": "Fremstilling af maling, lak og lignende overfladebehandlingsmidler, trykfarver samt t\u00E6tningsmaterialer", + "Description": "Branchen omfatter fremstilling af maling, lak mv., fx fernis, emalje, f\u00E6rdiglavede pigmenter og farvestoffer, opl\u00F8sningsmidler, fugemasser og trykfarve. Fremstilling af farvestoffer, tuffer og pigmenter henvises til 20.12.00." + }, + { + "Code": "204100", + "Title": "Fremstilling af s\u00E6be, reng\u00F8rings- og rensemidler samt poleremidler", + "Description": "Branchen omfatter fremstilling af s\u00E6be, reng\u00F8rings- og rensemidler samt poleringmidler, fx papir, vat, filt, vaskepulvere, reng\u00F8ringsmidler, opvaskemidler og skyllemidler. Fremstilling af kosmetisk s\u00E6be henvises til 20.42.00." + }, + { + "Code": "204200", + "Title": "Fremstilling af parfume, h\u00E5rshampoo, tandpasta mv.", + "Description": "Branchen omfatter fremstilling af parfume, h\u00E5rshampoo og tandpasta, inkl. barberpr\u00E6parater, deodoranter og badesalt samt h\u00E5rfjerningsmidler og kosmetisk s\u00E6be." + }, + { + "Code": "205100", + "Title": "Fremstilling af flydende biobr\u00E6ndstoffer", + "Description": "Branchen omfatter fremstilling af flydende biobr\u00E6ndstoffer, fx biodiesel, ethanol fra biomasse og flydende biobr\u00E6ndstoffer." + }, + { + "Code": "205900", + "Title": "Fremstilling af andre kemiske produkter i.a.n.", + "Description": "Branchen omfatter fremstilling af andre kemiske produkter, fx kemiske pr\u00E6parater til fotografisk brug, spr\u00E6ngstoffer, v\u00E6sker til brug i dampenheder, kemisk modificerede olier og fedstoffer samt pulvere og pastaer, der bruges til lodning." + }, + { + "Code": "206000", + "Title": "Fremstilling af kemofibre", + "Description": "Branchen omfatter fremstilling af kemofibre, fx syntetiske eller kunstige filamenter, filamentgarn og genanvendte fibre. Fremstilling af garn lavet af regenereret fiber henvises til 13.10.00." + }, + { + "Code": "211000", + "Title": "Fremstilling af farmaceutiske r\u00E5varer", + "Description": "Branchen omfatter fremstilling af farmaceutiske r\u00E5varer til brug i fx l\u00E6gemidler. Branchen omfatter ogs\u00E5 forarbejdning af blod, fremstilling af kemisk rent sukker og forarbejdning af kirtler." + }, + { + "Code": "212000", + "Title": "Fremstilling af farmaceutiske pr\u00E6parater", + "Description": "Branchen omfatter fremstilling af l\u00E6gemidler, fx vacciner og hom\u00F8opatiske pr\u00E6parater samt fremstilling af vat, gaze, bandager, forbindinger mv. impr\u00E6gneret med l\u00E6gemidler." + }, + { + "Code": "221100", + "Title": "Fremstilling og vulkanisering af gummid\u00E6k og fremstilling af gummislanger", + "Description": "Branchen omfatter fremstilling af gummid\u00E6k og gummislanger til diverse k\u00F8ret\u00F8jer, herunder ogs\u00E5 fremstilling af slidbaner og regummiering." + }, + { + "Code": "221200", + "Title": "Fremstilling af andre gummiprodukter", + "Description": "Branchen omfatter fremstilling af andre produkter af naturligt eller syntetisk gummi, fx gummitransportb\u00E5nd, hygiejniske gummiprodukter, ekspansionsfuger af gummi til byggesektoren og bekl\u00E6dning af latex (limet og ikke syet)." + }, + { + "Code": "222100", + "Title": "Fremstilling af plader, ark, r\u00F8r og slanger samt profiler af plast", + "Description": "Branchen omfatter fremstilling af b\u00E5de f\u00E6rdigvarer og halvfabrikata af plast. Fremstilling af plast i ubearbejdet form henvises til 20.16.00 og fremstilling af emballage af plast henvises til 22.22.00." + }, + { + "Code": "222200", + "Title": "Fremstilling af plastemballage", + "Description": "Branchen omfatter fremstilling af plastemballage, fx poser, kasser og flasker." + }, + { + "Code": "222300", + "Title": "Fremstilling af d\u00F8re og vinduer af plast", + "Description": "Branchen omfatter fremstilling af d\u00F8re og vinduer med rammer af plast samt skodder og persienner af plast." + }, + { + "Code": "222400", + "Title": "Fremstilling af bygningsartikler af plast", + "Description": "Branchen omfatter fremstilling af andre bygningsartikler af plast, fx fodpaneler, tanke, gulvbel\u00E6gninger til gulve, samt sanitetsartikler af en blanding af plast og mineraler. Fremstilling af gulvbel\u00E6gning af gummi henvises til 22.12.00." + }, + { + "Code": "222500", + "Title": "Forarbejdning og f\u00E6rdigbehandling af plastprodukter", + "Description": "Branchen omfatter forarbejdning og f\u00E6rdigbehandling af plast, fx klipning, svejsning, gravering og overfladebehandling af plast. Bekl\u00E6dning af metalr\u00F8r med plast og svejsning af plasttanke er ogs\u00E5 omfattet, hvorimod overfladebehandling af metaloverflader med plast henvises til 25.51.00." + }, + { + "Code": "222600", + "Title": "Fremstilling af andre plastprodukter", + "Description": "Branchen omfatter fremstilling af produkter i plast, fx service, k\u00F8kkengrej, toiletartikler og bekl\u00E6dningsartikler. Fremstilling af fodt\u00F8j af plast henvises til 15.20.00." + }, + { + "Code": "231100", + "Title": "Fremstilling af planglas", + "Description": "Branchen omfatter fremstilling af planglas, herunder tr\u00E5darmeret, farvet eller tonet glas. Formning og forarbejdning af planglas henvises til 23.12.00." + }, + { + "Code": "231200", + "Title": "Formning og forarbejdning af planglas", + "Description": "Branchen omfatter formning og forarbejdning af planglas, herunder h\u00E6rdning og laminering, samt fremstilling af glasspejle og termoruder. Fremstilling af spejle til k\u00F8ret\u00F8jer henvises til 29.32.00." + }, + { + "Code": "231300", + "Title": "Fremstilling af flasker, drikkeglas mv.", + "Description": "Branchen omfatter fremstilling af glasvarer, fx flasker, drikkeglas og andre husholdningsartikler af glas. Branchen omfatter ogs\u00E5 sk\u00E6ring og dekorering af drikkeglas. Trykning p\u00E5 glas henvises til 18.12.00." + }, + { + "Code": "231400", + "Title": "Fremstilling af glasfiber", + "Description": "Branchen omfatter fremstilling af glasfiber, herunder glasuld og ikke-v\u00E6vede produkter af glasuld samt produkter af glasfiber. Fremstilling af slaggeuld, stenuld og lignende mineralsk uld henvises til 23.99.90." + }, + { + "Code": "231500", + "Title": "Fremstilling og bearbejdning af andet glas, herunder teknisk glas", + "Description": "Branchen omfatter fremstilling og bearbejdning af glas, fx glasvarer til laboratorier, ure, glasindsatser til lamper og glasv\u00E6gge." + }, + { + "Code": "232000", + "Title": "Fremstilling af ildfaste produkter", + "Description": "Branchen omfatter fremstilling af ildfaste produkter, fx ildfast m\u00F8rtel, beton og mursten. Fremstilling af halvfabrikata, fx sand, grus, ler og sten, er ogs\u00E5 omfattet." + }, + { + "Code": "233100", + "Title": "Fremstilling af keramiske teglsten og gulvfliser", + "Description": "Branchen omfatter fremstilling af keramiske teglsten og gulvfliser, inkl. v\u00E6g- eller mosaikfliser og bel\u00E6gningssten. Fremstilling af keramiske mursten og tagsten henvises til 23.32.00." + }, + { + "Code": "233200", + "Title": "Fremstilling af mursten, teglsten og byggematerialer af br\u00E6ndt ler", + "Description": "Branchen omfatter fremstilling af strukturerede ikke-ildfaste keramiske artikler og gulvfliser i br\u00E6ndt ler." + }, + { + "Code": "234100", + "Title": "Fremstilling af keramiske husholdningsartikler og pyntegenstande", + "Description": "Branchen omfatter fremstilling af keramiske husholdningsartikler og pyntegenstande, fx service, k\u00F8kkent\u00F8j og statuetter." + }, + { + "Code": "234200", + "Title": "Fremstilling af keramiske sanitetsartikler", + "Description": "Branchen omfatter fremstilling af keramiske sanitetsartikler, fx h\u00E5ndvaske, badekar og toiletkummer." + }, + { + "Code": "234300", + "Title": "Fremstilling af keramiske isolatorer og isoleringsdele", + "Description": "Branchen omfatter fremstilling af elektriske isolatorer og isoleringsdele af keramik til elarbejde." + }, + { + "Code": "234400", + "Title": "Fremstilling af andre keramiske produkter til teknisk brug", + "Description": "Branchen omfatter fremstilling af keramiske artikler til teknisk brug, fx permanente magneter eller keramiske produkter til brug i laboratorier." + }, + { + "Code": "234500", + "Title": "Fremstilling af andre keramiske produkter", + "Description": "Branchen omfatter fremstilling af andre keramiske produkter til transport eller emballering, fx potter og krukker, samt til landbrugsform\u00E5l, fx keramiske trug og kar." + }, + { + "Code": "235100", + "Title": "Fremstilling af cement", + "Description": "Branchen omfatter fremstilling af forskellige former for cement og klinker. Fremstilling af cement, der bruges i tandl\u00E6gearbejde, henvises til 32.50.00." + }, + { + "Code": "235200", + "Title": "Fremstilling af kalk og gips", + "Description": "Branchen omfatter fremstilling af kalk og gips. Fremstilling af gipsartikler henvises til 23.62.00 og 23.66.00." + }, + { + "Code": "236100", + "Title": "Fremstilling af byggematerialer af beton", + "Description": "Branchen omfatter fremstilling af byggematerialer af beton, fx fliser, plader og r\u00F8r, samt pr\u00E6fabrikerede betonelementer til fx regnvandsh\u00E5ndtering." + }, + { + "Code": "236200", + "Title": "Fremstilling af byggematerialer af gips", + "Description": "Branchen omfatter fremstilling af byggematerialer af gips, fx plader, paneler og fliser." + }, + { + "Code": "236300", + "Title": "Fremstilling af f\u00E6rdigblandet beton", + "Description": "Branchen omfatter fremstilling af f\u00E6rdigblandet beton og m\u00F8rtel. Vognmandstransport med cement henvises til 49.41.00." + }, + { + "Code": "236400", + "Title": "Fremstilling af m\u00F8rtel", + "Description": "Branchen omfatter fremstilling af ikke-ildfast m\u00F8rtel og beton, som endnu ikke er blandet med vand." + }, + { + "Code": "236500", + "Title": "Fremstilling af fibercement", + "Description": "Branchen omfatter fremstilling af fibercement, fx fremstilling af artikler af vegetabilske stoffer, artikler af asbestcement eller cement af cellulosefibre." + }, + { + "Code": "236600", + "Title": "Fremstilling af andre produkter af beton, cement og gips", + "Description": "Branchen omfatter fremstilling af andre artikler af beton, gips eller sammens\u00E6tninger baseret p\u00E5 gips, cement eller kunststen. Fremstilling af udsmykkede plader eller paneler af gips er ogs\u00E5 omfattet.Fremstilling af pr\u00E6fabrikerede beton-, cement- eller kunststensartikler til brug i byggeri henvises til 23.61.00." + }, + { + "Code": "237000", + "Title": "Tilhugning, tilsk\u00E6ring og f\u00E6rdigbearbejdning af sten", + "Description": "Branchen omfatter tilsk\u00E6ring, tilhugning og f\u00E6rdigbearbejdning af sten, fx til byggeri, veje og kirkeg\u00E5rde." + }, + { + "Code": "239100", + "Title": "Fremstilling af slibemidler", + "Description": "Branchen omfatter fremstilling af naturlige og kunstige slibemidler, fx m\u00F8llesten og slibesten. Fremstilling af naturligt eller kunstigt skurepulver eller slibekorn baseret p\u00E5 tekstiler, pap eller andre materialer er ogs\u00E5 omfattet." + }, + { + "Code": "239910", + "Title": "Fremstilling af asfalt og tagpap", + "Description": "Branchen omfatter fremstilling af asfalt og tagpap, fx artikler af asfalt eller lignende materiale s\u00E5som asfaltbitumen eller kultj\u00E6rebeg." + }, + { + "Code": "239990", + "Title": "Fremstilling af andre ikke-metalholdige mineralske produkter, bortset fra asfalt og tagpap", + "Description": "Branchen omfatter fremstilling af ikke-metalholdige mineralske produkter, fx isoleringsmaterialer." + }, + { + "Code": "241000", + "Title": "Fremstilling af r\u00E5jern og r\u00E5st\u00E5l samt jernlegeringer", + "Description": "Branchen omfatter fremstilling af r\u00E5jern og r\u00E5st\u00E5l samt jernlegeringer, fx ferrolegeringer, granulereat jern og valsede produkter af st\u00E5l. Drift af h\u00F8jovne og fremstilling af h\u00F8jovnsgas er ogs\u00E5 omfattet." + }, + { + "Code": "242000", + "Title": "Fremstilling af r\u00F8r, hule profiler og tilh\u00F8rende fittings af st\u00E5l", + "Description": "Branchen omfatter fremstilling af r\u00F8r, hule profiler og tilh\u00F8rende fittings af st\u00E5l mv., herunder s\u00F8ml\u00F8se r\u00F8r, bortset fra fremstilling af s\u00F8ml\u00F8se st\u00E5lr\u00F8r ved centrifugalst\u00F8bning, hvilket henvises til 24.52.00." + }, + { + "Code": "243100", + "Title": "Fremstilling af st\u00E6nger ved koldtr\u00E6kning", + "Description": "Branchen omfatter fremstilling af st\u00E5lr\u00F8r og massive sektioner af st\u00E5l ved koldtr\u00E6kning, slibning eller kold f\u00E6rdigbearbejdning." + }, + { + "Code": "243200", + "Title": "Fremstilling af st\u00E5lb\u00E5nd ved koldvalsning", + "Description": "Branchen omfatter fremstilling af fladvalsede st\u00E5lprodukter ved koldvalsning af varmevalsede flade produkter eller st\u00E5lst\u00E6nger. Produkterne kan v\u00E6re med eller uden bel\u00E6gning, oprullede eller i lige stykker - bredden skal v\u00E6re mindre end 600 mm." + }, + { + "Code": "243300", + "Title": "Koldbehandling", + "Description": "Branchen omfatter fremstilling af \u00E5bne sektioner ved progressiv koldbehandling p\u00E5 en valsem\u00F8lle. Fremstilling af zinklpulver ved atomisering af smeltet zink henvises til 24.43.00." + }, + { + "Code": "243400", + "Title": "Fremstilling af tr\u00E5d ved koldtr\u00E6kning", + "Description": "Branchen omfatter fremstilling af trukket s\u00E5larmering ved koldtr\u00E6kning af valsetr\u00E5d." + }, + { + "Code": "244100", + "Title": "Fremstilling af \u00E6delmetaller", + "Description": "Branchen omfatter fremstilling og raffinering af b\u00E5de bearbejdede og ubearbejdede \u00E6delmetaller, fx guld, s\u00F8lv, platin mv., samt legeringer af disse. St\u00F8bning af kobber, zink og andre ikke-jernholdige metaller henvises til 24.54.00." + }, + { + "Code": "244200", + "Title": "Fremstilling af aluminium", + "Description": "Branchen omfatter fremstilling af aluminium, fx ubearbejdet aluminium, legeret og ikke-legeret, samt fremstilling af r\u00F8r, r\u00F8rfittings og folie i aluminium. St\u00F8bning af aluminium og andre lette metaller henvises til 24.53.00." + }, + { + "Code": "244300", + "Title": "Fremstilling af bly, zink og tin", + "Description": "Branchen omfatter fremstilling af ubearbejdet bly, zink eller tin samt st\u00E6nger, profiler og folie af bly, zink eller tin. St\u00F8bning af bly, zink og tin henvises til 24.54.00." + }, + { + "Code": "244400", + "Title": "Fremstilling af kobber", + "Description": "Branchen omfatter fremstilling af kobber, fx fremstilling af st\u00E6nger, profiler, wire af kobber samt kobberfolie. Branchen omfatter ogs\u00E5 fremstilling af st\u00E6nger, profiler, plader, b\u00E5nd, wire og r\u00F8r af messing. St\u00F8bning af kobber henvises til 24.54.00." + }, + { + "Code": "244500", + "Title": "Anden fremstilling af ikke-jernholdige metaller", + "Description": "Branchen omfatter fremstilling af ubearbejdet krom, mangan og nikkel samt fremstilling af st\u00E6nger, profiler, plader og b\u00E5nd deraf." + }, + { + "Code": "244600", + "Title": "Oparbejdning af nukleart br\u00E6ndsel", + "Description": "Branchen omfatter fremstilling af naturligt uran og legeringer af uran samt smeltning og raffinering heraf." + }, + { + "Code": "245100", + "Title": "St\u00F8bning af jernprodukter", + "Description": "Branchen omfatter st\u00F8bning af jernprodukter af alle typer jern." + }, + { + "Code": "245200", + "Title": "St\u00F8bning af st\u00E5lprodukter", + "Description": "Branchen omfatter st\u00F8bning af st\u00E5lprodukter af alle typer st\u00E5l, herunder st\u00F8bninger af kulstof." + }, + { + "Code": "245300", + "Title": "St\u00F8bning af letmetalprodukter", + "Description": "Branchen omfatter st\u00F8bning af letmetalprodukter, fx aluminium, magnesium og titanium, herunder st\u00F8bning af dentalredskaber mv. af letmetaller." + }, + { + "Code": "245400", + "Title": "St\u00F8bning af andre ikke-jernholdige metalprodukter", + "Description": "Branchen omfatter st\u00F8bning af andre ikke-jernholdige metalprodukter, fx kobber, zink, bly - eller nikkellegeringer. St\u00F8bning af dentalredskaber mv. af ikke-jernholdige metaller, dvs. ikke-letmetaller, er ogs\u00E5 omfattet." + }, + { + "Code": "251100", + "Title": "Fremstilling af metalkonstruktioner og dele heraf", + "Description": "Branchen omfatter fremstilling af metalkonstruktioner og dele heraf, fx master, udstyr til stilladser, arbejdsskure og b\u00E6rende konstruktioner af metal, fx til lys eller h\u00F8jttalere." + }, + { + "Code": "251200", + "Title": "Fremstilling af d\u00F8re og vinduer af metal", + "Description": "Branchen omfatter fremstilling af d\u00F8re, vinduer, skodder, porte og lignende af metal." + }, + { + "Code": "252100", + "Title": "Fremstilling af radiatorer, damp- og fyringskedler til centralvarmeanl\u00E6g", + "Description": "Branchen omfatter fremstilling af radiatorer, damp- og fyringskedler til centralvarmeanl\u00E6g og kondensatorer til damp og kernereaktorer." + }, + { + "Code": "252200", + "Title": "Fremstilling af andre tanke og beholdere af metal", + "Description": "Branchen omfatter fremstilling af reservoirer, tanke, kar og lignende beholdere med en kapacitet p\u00E5 minimum 300 liter." + }, + { + "Code": "253000", + "Title": "Fremstilling af v\u00E5ben og ammunition", + "Description": "Branchen omfatter fremstilling af milit\u00E6re v\u00E5ben og ammunition, fx maskingev\u00E6rer, bomber, missiler og patronhylstre til gev\u00E6rer. Fremstilling af skydev\u00E5ben og ammunition til jagt, sport eller beskyttelse er ogs\u00E5 omfattet. Fremstilling af huggerter, sv\u00E6rd, bajonetter mv. henvises til 25.61.00." + }, + { + "Code": "254000", + "Title": "Smedning og valsning af metal samt pulvermetallurgi", + "Description": "Branchen omfatter smedning og valsning af metal samt pulvermetallurgi og efterf\u00F8lgende bearbejdning." + }, + { + "Code": "255100", + "Title": "Overfladebehandling af metal", + "Description": "Branchen omfatter overfladebehandling af metal, fx galvanisering, bekl\u00E6dning, farvning og emaljering." + }, + { + "Code": "255200", + "Title": "Varmebehandling af metal", + "Description": "Branchen omfatter varmebehandling af metal, fx forvarmning, gl\u00F8dning, h\u00E6rdning, oxidering og borering." + }, + { + "Code": "255300", + "Title": "Maskinforarbejdning af metal", + "Description": "Branchen omfatter maskinforarbejdning af metal, fx drejning, fr\u00E6sning, slibning og svejsning." + }, + { + "Code": "256100", + "Title": "Fremstilling af bestik, sk\u00E6re- og klipperedskaber", + "Description": "Branchen omfatter fremstilling af produkter i metal, fx bestik og sk\u00E6re- og klipperedskaber samt fremstilling af huggerter, sv\u00E6rd, bajonetter mv. Fremstilling af bestik, sk\u00E6re- og klipperedskaber af \u00E6delmetal henvises til 32.12.00." + }, + { + "Code": "256200", + "Title": "Fremstilling af l\u00E5se og h\u00E6ngsler", + "Description": "Branchen omfatter fremstilling af isenkram i metal, fx l\u00E5se, h\u00E6ngsler og beslag til bygninger, m\u00F8bler, k\u00F8ret\u00F8jer mv." + }, + { + "Code": "256300", + "Title": "Fremstilling af h\u00E5ndv\u00E6rkt\u00F8j", + "Description": "Branchen omfatter fremstilling af h\u00E5ndv\u00E6rkt\u00F8j, fx knive og klinger til maskiner eller mekaniske apparater, save og savklinger samt udskifteligt v\u00E6rkt\u00F8j til h\u00E5ndv\u00E6rkt\u00F8j. Fremstilling af eldrevet h\u00E5ndv\u00E6rkt\u00F8j henvises til 28.24.00." + }, + { + "Code": "259100", + "Title": "Fremstilling af metalt\u00F8nder og lignende beholdere", + "Description": "Branchen omfatter fremstilling af tanke og t\u00F8nder af metal samt lignende beholdere af jern og st\u00E5l med en kapacitet p\u00E5 h\u00F8jst 300 liter." + }, + { + "Code": "259200", + "Title": "Fremstilling af letmetalemballage", + "Description": "Branchen omfatter fremstilling af emballage af letmetal, fx dunke af jern eller st\u00E5l, d\u00E5ser til f\u00F8devarer, komprimerbare kasser og tuber, samt fremstilling af metallukninger." + }, + { + "Code": "259300", + "Title": "Fremstilling af tr\u00E5dvarer, k\u00E6der og fjedre", + "Description": "Branchen omfatter fremstilling af tr\u00E5dvarer, k\u00E6der og fjedre, fx kabler med metalelementer, s\u00F8m og bolte, blade til fjedre og fremstilling af k\u00E6der. Fremstilling af urfjedre henvises til 26.52.00 og fremstilling af kraftoverf\u00F8ringsk\u00E6der henvises til 28.15.00." + }, + { + "Code": "259400", + "Title": "Fremstilling af lukkeanordninger, bolte, skruer og m\u00F8trikker", + "Description": "Branchen omfatter fremstilling af lukkeanordninger, bolte, skruer og m\u00F8trikker, fx nitter, bolte og skruer med og uden gevind." + }, + { + "Code": "259900", + "Title": "Fremstilling af andre f\u00E6rdige metalprodukter i.a.n.", + "Description": "Branchen omfatter fremstilling af andre f\u00E6rdige metalprodukter, fx husholdningsartikler, pengeskabe, skibsskruer, stiger, termokander og milit\u00E6re v\u00E6rdighedstegn af metal." + }, + { + "Code": "261100", + "Title": "Fremstilling af elektroniske komponenter", + "Description": "Branchen omfatter fremstilling af elektroniske komponenter, fx kondensatorer, elektroniske krystaller, mikroprocessorer, induktionsspoler og sk\u00E6rmkomponenter. Fremstilling af computer- og tv-sk\u00E6rme henvises til 26.20.00." + }, + { + "Code": "261200", + "Title": "Fremstilling af printplader o.lign.", + "Description": "Branchen omfatter fremstilling af ladede printplader, kontakter, passive elementkomponenter p\u00E5 printplader samt interfacekort, fx lyd, video eller netv\u00E6rk ladet med passive elementer." + }, + { + "Code": "262000", + "Title": "Fremstilling af computere og ydre enheder", + "Description": "Branchen omfatter fremstilling af computere, fx station\u00E6re og b\u00E6rbare, samt computerudstyr, fx printere, sk\u00E6rme, mus og tastaturer, samt fremstilling af multifunktionelt kontorudstyr. Fremstilling af mobiltelefoner henvises til 26.30.00." + }, + { + "Code": "263000", + "Title": "Fremstilling af kommunikationsudstyr", + "Description": "Branchen omfatter fremstilling af kommunikationsudstyr, fx telefoncentraludstyr, mobiltelefoner, persons\u00F8gere og modemmer, inkl. smart-watches. Fremstilling af elektroniske komponenter og delkomponenter, der bruges i kommunikationsudstyr, henvises til 26.12.00." + }, + { + "Code": "264000", + "Title": "Fremstilling af elektronik til husholdninger", + "Description": "Branchen omfatter fremstilling af elektronik til husholdninger, fx tv\u0027er, h\u00F8jttalersystemer, mikrofoner, karaokemaskiner, videospillekonsoller og lyd- og videoudstyr til hjemmebiografer. Fremstilling af fjernbetjeninger til elektronik henvises til 26.30.00." + }, + { + "Code": "265100", + "Title": "Fremstilling af instrumenter og udstyr til m\u00E5ling, afpr\u00F8vning og navigation", + "Description": "Branchen omfatter fremstilling af udstyr til m\u00E5ling, afpr\u00F8vning og navigation, fx t\u00E6llere, radarudstyr og l\u00F8gnedetektormaskiner samt meteorologiske instrumenter. Fremstilling af vejningsmaskiner (bortset fra f\u00F8lsomme laboratoriev\u00E6gte), nivelleringsinstrumenter, m\u00E5leb\u00E5nd mv. henvises til 28.29.00." + }, + { + "Code": "265200", + "Title": "Fremstilling af ure", + "Description": "Branchen omfatter fremstilling af alle typer ure, fx parkometre, tidsregistreringsudstyr og komponenter til ure, bortset fra smart-watches, som henvises til 26.30.00." + }, + { + "Code": "266010", + "Title": "Fremstilling af h\u00F8reapparater og dele hertil", + "Description": "Branchen omfatter fremstilling af h\u00F8reapparater og dele hertil." + }, + { + "Code": "266090", + "Title": "Fremstilling af bestr\u00E5lingsudstyr og elektromedicinsk og elektroterapeutisk udstyr", + "Description": "Branchen omfatter fremstilling af bestr\u00E5lingsudstyr samt elektromedicinsk og elektroterapeutisk udstyr, fx udstyr til MR-billeddannelse, pacemakere, CT og Pet scannere samt medicinsk laserudstyr." + }, + { + "Code": "267000", + "Title": "Fremstilling af optiske instrumenter, magnetiske og optiske medier og fotografisk udstyr", + "Description": "Branchen omfatter fremstilling af optiske instrumenter, magnetiske og optiske medier samt fotografisk udstyr, fx optiske spejle, linser, optiske mikroskoper, kikkerter og tomme optiske medier. Fremstilling af videokameraer til private henvises til 26.40.00." + }, + { + "Code": "271100", + "Title": "Fremstilling af elektriske motorer, generatorer og transformatorer", + "Description": "Branchen omfatter fremstilling af alle typer af elektriske motorer, generatorer og transformerer, undtagen startmotorer til forbr\u00E6ndingsmotorer, der henvises til 29.31.00." + }, + { + "Code": "271200", + "Title": "Fremstilling af elektriske fordelings- og kontrolapparater", + "Description": "Branchen omfatter fremstilling af elektriske fordelings- og kontrolapparater, fx fremstilling af str\u00F8mafbrydere, elektriske rel\u00E6er og elektriske sikringer. Fremstilling af afbrydere til elektriske kredsl\u00F8b, s\u00E5som trykknapper og hurtigafbrydere, henvises til 27.33.00." + }, + { + "Code": "272000", + "Title": "Fremstilling af batterier og akkumulatorer", + "Description": "Branchen omfatter fremstilling af alle typer af batterier og akkumulatorer, fx v\u00E5dcellebatterier, t\u00F8rbatterier, batterier til k\u00F8ret\u00F8jer og cykler samt fremstilling af lagringssystemer til batterier." + }, + { + "Code": "273100", + "Title": "Fremstilling af lyslederkabler", + "Description": "Branchen omfatter fremstilling af lyslederkabler til datatransmission eller direkte transmission af billeder." + }, + { + "Code": "273200", + "Title": "Fremstilling af andre elektroniske og elektriske ledninger og kabler", + "Description": "Branchen omfatter fremstilling af isolerede ledninger og kabler af st\u00E5l, kobber eller aluminium. Fremstilling af elledninger med isolering og stik henvises til 27.90.00." + }, + { + "Code": "273300", + "Title": "Fremstilling af tilbeh\u00F8r til ledninger og kabler", + "Description": "Branchen omfatter fremstilling af tilbeh\u00F8r til ledninger og kabler, fx HFI-rel\u00E6er, lampefatninger, stikpropper, stik, fatninger og forsyningsmaster. Fremstilling af stik, fatninger og afbrydere som elektroniske komponenter henvises til 26.11.00." + }, + { + "Code": "274000", + "Title": "Fremstilling af belysningsartikler", + "Description": "Branchen omfatter fremstilling af belysningsartikler, fx lofts- eller v\u00E6gbelysning, bord- eller standerlamper samt belysningsartikler, s\u00E5som elektriske pejse, lommelygter og belysningsartikler til transportudstyr." + }, + { + "Code": "275100", + "Title": "Fremstilling af elektriske husholdningsapparater", + "Description": "Branchen omfatter elektriske husholdningsapparater, fx k\u00F8leskabe, st\u00F8vsugere, opvaskemaskiner, vandvarmere, d\u00E5se\u00E5bnere og f\u00F8nt\u00F8rrere." + }, + { + "Code": "275200", + "Title": "Fremstilling af ikke-elektriske husholdningsapparater", + "Description": "Branchen omfatter fremstilling af ikke-elektriske husholdningsapparater, fx ikke-elektriske varmeovne, kogeapparater og grill." + }, + { + "Code": "279000", + "Title": "Fremstilling af andet elektrisk udstyr", + "Description": "Branchen omfatter fremstilling af andet elektrisk udstyr, fx batteriopladere, ringklokker, sirener, elektriske skilte, solarier og maskiner til ultralydsrensning og opladere til motork\u00F8ret\u00F8jer." + }, + { + "Code": "281100", + "Title": "Fremstilling af motorer og turbiner, undtagen motorer til flyvemaskiner, motork\u00F8ret\u00F8jer og knallerter", + "Description": "Branchen omfatter fremstilling af motorer og turbiner, undtagen motorer til flyvemaskiner, motork\u00F8ret\u00F8jer og knallerter, fx skibsmotorer, jernbanemotorer og forskellige former for turbiner. Fabrikseftersyn af skibs- og b\u00E5dmotorer er ogs\u00E5 omfattet.Reparation og vedligeholdelse af solceller og vindm\u00F8ller henvises til 42.22.00." + }, + { + "Code": "281200", + "Title": "Fremstilling af hydraulisk udstyr", + "Description": "Branchen omfatter fremstilling af hydraulisk udstyr, fx hydrauliske og pneumatiske pumper, motorer, systemer og transmissionsudstyr." + }, + { + "Code": "281300", + "Title": "Fremstilling af andre pumper og kompressorer", + "Description": "Branchen omfatter fremstilling af luft-eller vakuumpumper, pumper til v\u00E6sker, br\u00E6ndstofpumper til motork\u00F8ret\u00F8jer mv." + }, + { + "Code": "281400", + "Title": "Fremstilling af andre haner og ventiler", + "Description": "Branchen omfatter fremstilling af andre haner og ventiler, fx til sanitetsarmaturer og centralvarmeradiatorer. Fremstilling af ventiler til uh\u00E6rdet vulkaniseret gummi, glas eller af keramiske materialer henvises til 22.12.00, 23.15.00 eller 23.44.00." + }, + { + "Code": "281500", + "Title": "Fremstilling af lejer, tandhjul, tandhjulsudvekslinger og drivelementer", + "Description": "Branchen omfatter fremstilling af kugle- og rullelejer, gear, gearkasser og koblinger samt mekanisk krafttransmissionsudstyr. Fremstilling af koblinger til motork\u00F8ret\u00F8jer henvises til 29.31.00." + }, + { + "Code": "282100", + "Title": "Fremstilling af ovne, ildsteder og fyringsaggregater til boligopvarmning", + "Description": "Branchen omfatter fremstilling af elektriske og andre industri- og laboratorieovne samt k\u00F8le- og ventilationsudstyr til husholdninger, herunder ikke-reversible varmepumper. Fremstilling af mekaniske stokere, kaminer og askeudledere er ogs\u00E5 omfattet. Fremstilling af elovne til husholdningsbrug henvises til 27.51.00." + }, + { + "Code": "282200", + "Title": "Fremstilling af l\u00F8fte- og h\u00E5ndteringsudstyr", + "Description": "Branchen omfatter fremstilling af l\u00F8fte-og h\u00E5ndteringsudstyr, fx taljer, hejsev\u00E6rk, kraner, trucks, transportb\u00E5nd, tovbaner, elevatorer og rulletrapper.Fremstilling af mekaniske skovle og udgravnings- eller l\u00E6ssemaskiner henvises til 28.92.00." + }, + { + "Code": "282300", + "Title": "Fremstilling af kontormaskiner og -udstyr, undtagen computere og ydre enheder", + "Description": "Branchen omfatter fremstilling af kontormaskiner og -apparater, fx kasseapparater, lommeregnere, blyantspidsemaskiner, tapedispensere, tavler, whiteboards og diktermaskiner. Fremstilling af blyantspidsere henvises til 25.61.00." + }, + { + "Code": "282400", + "Title": "Fremstilling af motordrevet h\u00E5ndv\u00E6rkt\u00F8j", + "Description": "Branchen omfatter fremstilling af motordrevet h\u00E5ndv\u00E6rkt\u00F8j, fx k\u00E6desave, slibemaskiner, sakse, klippev\u00E6rkt\u00F8j og boremaskiner." + }, + { + "Code": "282500", + "Title": "Fremstilling af klimaanl\u00E6g, ikke til husholdningsbrug", + "Description": "Branchen omfatter fremstilling af klimaanl\u00E6g, fx k\u00F8le- og fryseudstyr samt airconditionanl\u00E6g, der ikke er til husholdningsbrug eller motork\u00F8ret\u00F8jer." + }, + { + "Code": "282900", + "Title": "Fremstilling af andre maskiner til generelle form\u00E5l i.a.n.", + "Description": "Branchen omfatter fremstilling af en bred vifte af maskiner, fx v\u00E6gte, m\u00E5leb\u00E5nd og ikke-optiske pr\u00E6cisionsv\u00E6rkt\u00F8jer (til maskinarbejde), emballeringsmaskiner, salgsautomater, valsemaskiner (dog ikke til glas eller metal) og destillationsanl\u00E6g." + }, + { + "Code": "283000", + "Title": "Fremstilling af landbrugs- og skovbrugsmaskiner", + "Description": "Branchen omfatter fremstilling af maskiner til land- og skovbrug, fx traktorer, plove, g\u00F8dningsspredere, malkemaskiner, t\u00E6rskev\u00E6rk og maskiner til fjerkr\u00E6avl, biavl og sortering af \u00E6g." + }, + { + "Code": "284100", + "Title": "Fremstilling af metalforarbejdende maskiner og maskinv\u00E6rkt\u00F8j til bearbejdning af metal", + "Description": "Branchen omfatter fremstilling af maskiner og maskinv\u00E6rkt\u00F8j til bearbejdning af metal, fx til slibning, formaling, polering, stansning og presning." + }, + { + "Code": "284200", + "Title": "Fremstilling af andet maskinv\u00E6rkt\u00F8j", + "Description": "Branchen omfatter fremstilling af andet maskinv\u00E6rkt\u00F8j, fx maskinv\u00E6rkt\u00F8j til bearbejdning af tr\u00E6, kork, ben, sten mv., inkl. delehoveder og anden hj\u00E6lpeindretning til maskinv\u00E6rkt\u00F8j, samt fremstilling af station\u00E6re maskiner til fx s\u00F8mning, h\u00E6ftning og limning." + }, + { + "Code": "289100", + "Title": "Fremstilling af maskiner til metallurgi", + "Description": "Branchen omfatter fremstilling af maskiner og udstyr til metallurgi og til h\u00E5ndtering af varme metaller, samt metalvalseanl\u00E6g." + }, + { + "Code": "289200", + "Title": "Fremstilling af maskiner til r\u00E5stofindvindingsindustrien samt bygge- og anl\u00E6g", + "Description": "Branchen omfatter fremstilling af maskiner, der bruges i r\u00E5stofindustrien eller inden for bygge- og anl\u00E6gssektoren, fx elevatorer og transportb\u00E5nd til varer og materialer under jorden, bulldozere, piloteringsmaskiner og tipvogne." + }, + { + "Code": "289300", + "Title": "Fremstilling af maskiner til f\u00F8de-, drikke- og tobaksvareindustrien", + "Description": "Branchen omfatter fremstilling af maskiner til brug i f\u00F8de-, drikke- og tobaksvareindustrien, fx maskiner til mejeribranchen eller til fremstilling af mel, ost eller br\u00F8d." + }, + { + "Code": "289400", + "Title": "Fremstilling af maskiner til produktion af tekstiler, bekl\u00E6dningsartikler og l\u00E6der", + "Description": "Branchen omfatter fremstilling af maskiner til forabejdning og fremstilling af tekstiler, bekl\u00E6dningsartikler og l\u00E6der, fx spindemaskiner, strikkemaskiner, v\u00E6vemaskiner og tekstiltryk." + }, + { + "Code": "289500", + "Title": "Fremstilling af maskiner til produktion af papir og pap", + "Description": "Branchen omfatter fremstilling af maskiner til fremstilling af papir og pap, fx maskiner til fremstilling af papirmasse." + }, + { + "Code": "289600", + "Title": "Fremstilling af maskiner til produktion af plast og gummi", + "Description": "Branchen omfatter fremstilling af maskiner til produktion og bearbejdning af bl\u00F8d gummi eller plast og maskiner til produktion af specielle gummi- eller plastprodukter." + }, + { + "Code": "289700", + "Title": "Fremstilling af maskiner til additiv fremstilling", + "Description": "Branchen omfatter fremstilling af maskiner til additiv fremstilling, fx maskiner, der kan 3D-printe med metal, plast og gips." + }, + { + "Code": "289900", + "Title": "Fremstilling af \u00F8vrige maskiner til specielle form\u00E5l i.a.n.", + "Description": "Branchen omfatter fremstilling af \u00F8vrige maskiner til specielle form\u00E5l, fx maskiner til produktion af fliser, st\u00F8beforme, industrirobotter, centralsm\u00F8resystemer, kegleops\u00E6ttere til bowlingbaner, karruseller og gynger samt affaldskomprimeringsmaskiner." + }, + { + "Code": "291000", + "Title": "Fremstilling af motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter fremstilling af motork\u00F8ret\u00F8jer, fx personbiler, racerbiler, busser, snescootere og fejemaskiner. Ombygning p\u00E5 fabrik af motorer til motork\u00F8ret\u00F8jer er ogs\u00E5 omfattet. Fremstilling af elektriske dele til motork\u00F8ret\u00F8jer henvises til 29.31.00." + }, + { + "Code": "292000", + "Title": "Fremstilling af karosserier til motork\u00F8ret\u00F8jer; fremstilling af p\u00E5h\u00E6ngsvogne og s\u00E6ttevogne", + "Description": "Branchen omfatter fremstilling af karosserier til motork\u00F8ret\u00F8jer samt fremstilling af p\u00E5h\u00E6ngsvogne og s\u00E6ttevogne, fx campingvogne, tankvogne, brandbiler og bogbusser. Fremstilling af p\u00E5h\u00E6ngsvogne og s\u00E6ttevogne specialdesignet til brug i landbruget henvises til 28.30.00." + }, + { + "Code": "293100", + "Title": "Fremstilling af elektrisk og elektronisk udstyr til motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter fremstilling af elektrisk udstyr til motork\u00F8ret\u00F8jer, fx startmotorer, generatorer og t\u00E6ndr\u00F8r, samt fremstilling af moduler til vekselrettere og br\u00E6ndselsceller til biler. Fremstilling af belysningsartikler, fx lygter, til motork\u00F8ret\u00F8jer henvises til 27.40.00." + }, + { + "Code": "293200", + "Title": "Fremstilling af andre dele og tilbeh\u00F8r til motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter fremstilling af dele og tilbeh\u00F8r til motork\u00F8ret\u00F8jer og karosserier, fx bremser, airbags, bakspejle, bils\u00E6der og airconditionanl\u00E6g." + }, + { + "Code": "301100", + "Title": "Bygning af civile skibe og flydende materiel", + "Description": "Branchen omfatter bygning af skibe, fx f\u00E6rger og fragt- og tankskibe. Branchen omfatter ogs\u00E5 fremstilling af flydende materiel som boreplatforme, redningsfl\u00E5der og pramme. B\u00E5de og skibe til sport og lystsejlads henvises til branche 30.12.00." + }, + { + "Code": "301200", + "Title": "Bygning af b\u00E5de til fritid og sport", + "Description": "Branchen omfatter bygning af b\u00E5de til fritid og sport, fx kanoer, sejlb\u00E5de og motorb\u00E5de, samt fremstilling af kundespecifikke vandfart\u00F8jer. Fremstilling af sejl og surfbr\u00E6tter er er omfattet af 32.30.00." + }, + { + "Code": "301300", + "Title": "Bygning af milit\u00E6rfart\u00F8jer", + "Description": "Branchen omfatter bygning af milit\u00E6rfart\u00F8jer, fx hangarskibe, undervandsb\u00E5de og landgangsfart\u00F8jer. Fabriksombygning af milit\u00E6rskibe, -fart\u00F8jer og flydende materiel er ogs\u00E5 omfattet." + }, + { + "Code": "302000", + "Title": "Fremstilling af lokomotiver og andet rullende materiel til jernbaner og sporveje", + "Description": "Branchen omfatter fremstilling af lokomotiver og andet rullende materiel til jernbaner og sporveje, fx passagervogne, tankvogne og specialdele til lokomotiver, samt fremstilling af mekanisk og elektromagnetisk signal-, sikkerheds- og trafikkontroludstyr. Fremstilling af elektriske signalsystemer og sikkerheds- eller trafikkontroludstyr til jernbaner eller sporveje henvises til 27.90.00." + }, + { + "Code": "303100", + "Title": "Fremstilling af civile luft- og rumfart\u00F8jer o.lign.", + "Description": "Branchen omfatter fremstilling af civile luft- og rumfart\u00F8jer mv., fx passagerfly, sv\u00E6vefly, helikoptere, styrbare luftskibe og turbojet- og turbopropelmotorer. Fremstilling af missiler til brug i rummet, satellitter og planet-rumsonder samt ombygning af civile luftfart\u00F8jer eller flymotorer er ogs\u00E5 omfattet. Fremstilling af milit\u00E6re fly og rumfart\u00F8jer henvises til 30.32.00." + }, + { + "Code": "303200", + "Title": "Fremstilling af milit\u00E6re luft- og rumfart\u00F8jer o.lign.", + "Description": "Branchen omfatter fremstilling af milit\u00E6re luft-og rumfart\u00F8jer mv., fx fastvingefly og droner til milit\u00E6re form\u00E5l. Branchen omfatter ogs\u00E5 fabrikseftersyn og ombygning af milit\u00E6re fly og rumfart\u00F8jer. Reparation og vedligeholdelse af maskiner til milit\u00E6re luft-og rumfart\u00F8jer henvises til 33.18.00." + }, + { + "Code": "304000", + "Title": "Fremstilling af milit\u00E6re kampk\u00F8ret\u00F8jer", + "Description": "Branchen omfatter fremstilling af milit\u00E6re kampk\u00F8ret\u00F8jer, fx tanks, pansrede amfibiemilit\u00E6rk\u00F8ret\u00F8jer, pansrede t\u00E5rne, d\u00F8re og d\u00E6ksler samt fabrikseftersyn og genopbygning af milit\u00E6re kampk\u00F8ret\u00F8jer. Reparation og vedligeholdelse af milit\u00E6re kampk\u00F8ret\u00F8jer henvises til 33.18.00." + }, + { + "Code": "309100", + "Title": "Fremstilling af motorcykler", + "Description": "Branchen omfatter fremstilling af motorcykler, fx knallerter, motorer og sidevogne til motorcykler samt tilbeh\u00F8r dertil. Fremstilling af gummihjul af den slags, der anvendes til motorcykler, henvises til 22.11.00." + }, + { + "Code": "309200", + "Title": "Fremstilling af cykler og k\u00F8restole", + "Description": "Branchen omfatter fremstilling af cykler og k\u00F8restole, fx tandemmer, b\u00F8rnecykler, trehjulede cykler, elektriske skateboards og l\u00F8behjul, barnevogne og dele dertil." + }, + { + "Code": "309900", + "Title": "Fremstilling af andre transportmidler i.a.n.", + "Description": "Branchen omfatter fremstilling af andre transportmidler, herunder fremstilling af h\u00E5ndtrukne og dyretrukne k\u00F8ret\u00F8jer. Transportudstyr af den slags, der anvendes p\u00E5 fabrikker og i lagerbygninger, fx s\u00E6kkevogne og trilleb\u00F8re, henvises til 28.22.00." + }, + { + "Code": "310000", + "Title": "Fremstilling af m\u00F8bler", + "Description": "Branchen omfatter fremstilling af m\u00F8bler, fx kontorm\u00F8bler, laboratoriem\u00F8bler, senge, sofaer, havestole og madrasser samt sengebunde. Fremstilling af cateringvogne og walk-in garderober samt f\u00E6rdigbehandling af m\u00F8bler er ogs\u00E5 omfattet." + }, + { + "Code": "321100", + "Title": "Pr\u00E6gning af m\u00F8nter", + "Description": "Branchen omfatter pr\u00E6gning af m\u00F8nter, herunder m\u00F8nter til brug som lovligt betalingsmiddel, ogs\u00E5 af \u00E6dle metaller." + }, + { + "Code": "321200", + "Title": "Fremstilling af smykker og lignende varer", + "Description": "Branchen omfatter fremstilling af smykker og lignende varer, fx af bearbejdede perler, guldsmedevarer i \u00E6delmetal eller metaldubl\u00E9, laboratorieartikler af \u00E6delmetal, urremme, manchetter og cigaretetuier af \u00E6delmetal. Gravering af personlige produkter i \u00E6delmetal og u\u00E6delt metal er ogs\u00E5 omfattet." + }, + { + "Code": "321300", + "Title": "Fremstilling af bijouteri og lignende varer", + "Description": "Branchen omfatter fremstilling af ringe, halsk\u00E6der, armb\u00E5nd, urremme mv. af u\u00E6dle metaller og kunstige sten." + }, + { + "Code": "322000", + "Title": "Fremstilling af musikinstrumenter", + "Description": "Branchen omfatter fremstilling af musikinstrumenter, fx strenge-, bl\u00E6se- og slagt\u00F8jsinstrumenter. Musikinstrumenter, hvis lyd frembringes elektronisk, er ogs\u00E5 omfattet, ligesom fremstilling af dele og tilbeh\u00F8r til instrumenter, fx metronomer og stemmegafler samt fl\u00F8jter, signalhorn og andre signalbl\u00E6seinstrumenter er omfattet." + }, + { + "Code": "323000", + "Title": "Fremstilling af sportsudstyr", + "Description": "Branchen omfatter fremstilling af sportsudstyr, fx bolde af forskellig h\u00E5rdhed, ketsjere, ski, lokkefugle og lignende rekvisitter til jagt og skydning, bassiner til sv\u00F8mme- eller soppebassiner samt udstyr til motionscentre." + }, + { + "Code": "324000", + "Title": "Fremstilling af spil og leget\u00F8j", + "Description": "Branchen omfatter fremstilling af spil og leget\u00F8j, fx dukker, actionfigurer, leget\u00F8jsdyr, spil og spilleautomater, puslespil og droner til rekreative form\u00E5l. Fremstilling af stofleget\u00F8j er ogs\u00E5 omfattet." + }, + { + "Code": "325000", + "Title": "Fremstilling af medicinske og dentale instrumenter samt udstyr hertil", + "Description": "Branchen omfatter fremstilling af medicinske og dentale instrumenter samt udstyr hertil, fx tandfyldninger, dentalcement, operationsborde, tandl\u00E6gestole, dentalinstrumenter, spr\u00F8jter, n\u00E5le, katetre, glas\u00F8jne og ortop\u00E6diske sko syet efter m\u00E5l." + }, + { + "Code": "329100", + "Title": "Fremstilling af koste og b\u00F8rster", + "Description": "Branchen omfatter fremstilling af koste og b\u00F8rster, fx toiletb\u00F8rster, fejekoste, malerpensler, mopper, sko- og t\u00F8jb\u00F8rster." + }, + { + "Code": "329900", + "Title": "Andre fremstillingsaktiviteter i.a.n.", + "Description": "Branchen omfatter andre fremstillingsaktiviteter, fx af forskellige former for personligt sikkerhedsudstyr som fx skudsikre veste, samt fremstilling af globusser, paraplyer, knapper og trykl\u00E5se, elektroniske cigaretter og lightere samt artikler til personligt brug som fx falske sk\u00E6g og \u00F8jenbryn. Udstopningsaktiviteter er ogs\u00E5 omfattet. Fremstilling af beskyttelsesbekl\u00E6dning henvises til 14.23.00." + }, + { + "Code": "331100", + "Title": "Reparation og vedligeholdelse af f\u00E6rdige metalprodukter", + "Description": "Branchen omfatter reparation og vedligeholdelse af f\u00E6rdige metalprodukter, fx metaltanke, -reservoirer og -beholdere, kondensatorer, forvarmere, overhedere, dampsamlere, akkumulatorer, kernereaktorer og skydev\u00E5ben samt v\u00E5ben til sports- og fritidsbrug." + }, + { + "Code": "331200", + "Title": "Reparation og vedligeholdelse af maskiner", + "Description": "Branchen omfatter reparation og vedligeholdelse af en bred vifte af maskiner og udstyr til erhvervsm\u00E6ssig brug. Branchen omfatter ogs\u00E5 reparation og vedligeholdelse af lokomotiver, pumper, kompressorer og tilh\u00F8rende udstyr." + }, + { + "Code": "331300", + "Title": "Reparation og vedligeholdelse af elektronisk og optisk udstyr", + "Description": "Branchen omfatter reparation og vedligeholdelse af elektronisk og optisk udstyr, fx udstyr til m\u00E5ling, instrumenter til flymotorer, meteorologiske instrumenter, pacemakere, h\u00F8reapparater, bestr\u00E5lingsapparatur, kikkerter og mikroskoper." + }, + { + "Code": "331400", + "Title": "Reparation og vedligeholdelse af elektrisk udstyr", + "Description": "Branchen omfatter reparation og vedligeholdelse af elektrisk udstyr, fx transformatorer, rel\u00E6er, batterier og elektrisk belysningsudstyr. Reparation og vedligeholdelse af ladestationer til biler er ogs\u00E5 omfattet." + }, + { + "Code": "331500", + "Title": "Reparation og vedligeholdelse af civile skibe og b\u00E5de", + "Description": "Branchen omfatter reparation og vedligeholdelse af civile skibe og b\u00E5de, fx fritidsb\u00E5de, elektriske p\u00E5h\u00E6ngsmotorer og flydende materiel." + }, + { + "Code": "331600", + "Title": "Reparation og vedligeholdelse af civile luft- og rumfart\u00F8jer", + "Description": "Branchen omfatter reparation og vedligeholdelse af civile luft- og rumfart\u00F8jer, fx civile fly og flymotorer. Fabriksgennemsyn og genopbygning af civile fly og flymotorer henvises til 30.31.00." + }, + { + "Code": "331700", + "Title": "Reparation og vedligeholdelse af andre civile transportmidler", + "Description": "Branchen omfatter reparation og vedligeholdelse af andre civile transportmidler, fx lokomotiver, ombygning af jernbanevogne, dyretrukne vogne eller h\u00E5nddrevne k\u00F8ret\u00F8jer. Reparation og vedligeholdelse af k\u00F8ret\u00F8jer til handicappede og indk\u00F8bsvogne er ogs\u00E5 omfattet. Reparation og vedligeholdelse af lokomotiver henvises til 33.12.00." + }, + { + "Code": "331800", + "Title": "Reparation og vedligeholdelse af milit\u00E6re kampk\u00F8ret\u00F8jer, skibe, b\u00E5de og luft- og rumfart\u00F8jer", + "Description": "Branchen omfatter reparation og vedligeholdelse af milit\u00E6re kampk\u00F8ret\u00F8jer, skibe, b\u00E5de og luft- og rumfart\u00F8jer." + }, + { + "Code": "331900", + "Title": "Reparation og vedligeholdelse af andet udstyr", + "Description": "Branchen omfatter reparation og vedligeholdelse af andet udstyr, der ikke er n\u00E6vnt i 33.11-33.18, fx fiskenet, tovv\u00E6rk, spilleautomater og hospitalssenge. Restaurering af orgler og andre historiske musikinstrumenter er ogs\u00E5 omfattet." + }, + { + "Code": "332000", + "Title": "Installation af industrimaskiner og -udstyr", + "Description": "Branchen omfatter installation af industrimaskiner og -udstyr, fx kommunikationsudstyr, udstyr til m\u00F8llebyggeri og bowlingbaner, lagermaskiner og -udstyr samt reoler og fritst\u00E5ende ladestationer." + }, + { + "Code": "351100", + "Title": "Produktion af elektricitet fra ikke-vedvarende energikilder", + "Description": "Branchen omfatter drift af produktionsanl\u00E6g, der producerer elektricitet fra ikke-vedvarende energikilder, fx naturgas og kul, samt fra udledningsfrie, ikke-vedvarende kilder, fx kernekraft." + }, + { + "Code": "351200", + "Title": "Produktion af elektricitet fra vedvarende energikilder", + "Description": "Branchen omfatter drift af produktionsanl\u00E6g, der producerer elektricitet fra vedvarende energikilder, fx vind- og vandkraft, solenergi og biobr\u00E6ndsler." + }, + { + "Code": "351300", + "Title": "Transmission af elektricitet", + "Description": "Branchen omfatter drift af h\u00F8jsp\u00E6ndingssystemer, der overf\u00F8rer elektricitet fra produktionsanl\u00E6g til distributionssystemer." + }, + { + "Code": "351400", + "Title": "Distribution af elektricitet", + "Description": "Branchen omfatter drift eller leasing af distributionssystemer (ledninger, poler, m\u00E5lere og ledningsf\u00F8ring), som overf\u00F8rer elektricitet til slutbrugeren." + }, + { + "Code": "351510", + "Title": "Handel med elektricitet via ladestationer o. lign.", + "Description": "Branchen omfatter handel med elektricitet, for egen regning, via ladestationer eller andre ladefaciliteter, fx til b\u00E6rbare computere, mobiltelefoner eller biler." + }, + { + "Code": "351590", + "Title": "Anden handel med elektricitet", + "Description": "Branchen omfatter anden handel med elektricitet, herunder drift af elektricitets- og transportkapacitetsudvekslinger for elektrisk str\u00F8m." + }, + { + "Code": "351600", + "Title": "Lagring af elektricitet", + "Description": "Branchen omfatter omformning og lagring af elektrisk energi, fx drift af pumpekraftv\u00E6rker eller batterilagringsanl\u00E6g. Distribution af lagret elektricitet til ledningsnet er ogs\u00E5 omfattet." + }, + { + "Code": "352100", + "Title": "Produktion af gas", + "Description": "Branchen omfatter fremstilling af gas ved karbonisering af kul eller af biprodukter fra landbrug eller affald. Produktion og rensning af biogas og biobr\u00E6ndsler i forbindelse med gas- og energiforsyning er ogs\u00E5 omfattet." + }, + { + "Code": "352200", + "Title": "Distribution af gas", + "Description": "Branchen omfatter distribution af alle typer gas gennem gasdistributionssystemer samt udlejning og leasing af gasdistributionssystemer.Langdistancetransport af gasser henvises til 49.50.00." + }, + { + "Code": "352300", + "Title": "Handel med gas gennem r\u00F8rledninger", + "Description": "Branchen omfatter handel med gas, for egen regning, til slutbrugeren, gennem gasdistributionssystemer. Handel med gas p\u00E5 andres regning gennem gasdistributionssystemer henvises til 35.40.00." + }, + { + "Code": "352400", + "Title": "Oplagring af gas i forbindelse med drift af forsyningsnet", + "Description": "Branchen omfatter lagring af gas, fx luftformige br\u00E6ndstoffer og hydrogengas, som en del af forsyningsnettet." + }, + { + "Code": "353000", + "Title": "Fjernvarmeforsyning", + "Description": "Branchen omfatter produktion, opsamling og distribution af vand, uanset om det er damp, koldt, varmt eller frossent, der bruges til opvarmning eller afk\u00F8ling. Lagring af termisk energi er ogs\u00E5 omfattet." + }, + { + "Code": "354000", + "Title": "M\u00E6gler- og agentaktiviteter i forbindelse med forsyning af elektricitet og naturgas", + "Description": "Branchen omfatter leverand\u00F8r- og agentaktiviteter i forbindelse med salg af el, gas og varme via distributionssystemer, der drives af andre." + }, + { + "Code": "360000", + "Title": "Vandforsyning", + "Description": "Branchen omfatter alle aktiviteter i forbindelse med opsamling, indvinding, behandling, afsaltning og distribution af vand til erhvervs- og husholdningsbrug. Branchen omfatter ogs\u00E5 udlejning og leasing af vandforsyningsnettet. Transport af vand gennem r\u00F8rledninger henvises til 49.50.00." + }, + { + "Code": "370000", + "Title": "Opsamling og behandling af spildevand", + "Description": "Branchen omfatter drift af kloakeringssystemer og spildevandsanl\u00E6g til opsamling, rensning og bortskaffelse af spildevand. Branchen omfatter ogs\u00E5 fryset\u00F8rring af spildevandsslam, t\u00F8mning og rensning af sivebr\u00F8nde, septiktanke, vaske og gruber for spildevand samt servicering af kemiske toiletter. Opbygning eller reparation af kloaksystemer henvises til 42.21.00." + }, + { + "Code": "381100", + "Title": "Indsamling af ikke-farligt affald", + "Description": "Branchen omfatter indsamling af ikke-farligt fast affald (dvs. skrald), genvindeligt affald og materialer fra b\u00E5de husholdninger og virksomheder. Branchen omfatter ogs\u00E5 indsamling og fjernelse af nedbrudt materiale og industrielle affaldsprodukter samt drift af affaldsoverf\u00F8rselsanl\u00E6g til ikke-farligt affald. Indsamling af spildevand henvises til 37.00.00." + }, + { + "Code": "381200", + "Title": "Indsamling af farligt affald", + "Description": "Branchen omfatter indsamling af sundheds- og milj\u00F8skadelige stoffer uanset form, fx spildolie, biologisk farligt affald, udl\u00F8bne l\u00E6gemidler og brugte batterier. Branchen omfatter ogs\u00E5 drift af affaldsoverf\u00F8rselsanl\u00E6g til farligt affald." + }, + { + "Code": "382100", + "Title": "Genindvinding af materialer", + "Description": "Branchen omfatter behandling af metal og ikke-metalholdigt affald, herunder skrot og andre artikler, til sekund\u00E6re r\u00E5materialer, fx gummi, plast, glas, spildolie og tekstiler. Produktion af biogas fra affald, som ikke sker med henblik p\u00E5 gas- eller energiforsyning, er ogs\u00E5 omfattet.Omsmeltning af jernholdigt affald og skrot henvises til 24.10.00 og omsmeltning af plastik til produktion af granulater eller forbindelser henvises til 20.16.00." + }, + { + "Code": "382200", + "Title": "Energiudnyttelse af affald", + "Description": "Branchen omfatter forbehandling af affald til energiudnyttelse samt konvertering af affaldsmaterialer." + }, + { + "Code": "382300", + "Title": "Anden nyttigg\u00F8relse af affald", + "Description": "Branchen omfatter forberedelse af spildevandsslam til jordbehandling mhp. forbedring af landbrug eller til ingeni\u00F8rm\u00E6ssige form\u00E5l inden for landskabsarkitektur." + }, + { + "Code": "383100", + "Title": "Forbr\u00E6nding uden energiudnyttelse", + "Description": "Branchen omfatter forbr\u00E6nding og varmebehandling af affald uden energiudnyttelse.Forbr\u00E6nding af affald mhp. energiudnyttelse henvises til 38.22.00." + }, + { + "Code": "383200", + "Title": "Deponering eller permanent oplagring", + "Description": "Branchen omfatter deponering eller permanent oplagring af affald. Branchen omfatter ogs\u00E5 opbevaring af indsamlet kuldioxid (CO2).Opsamling af kuldioxid (CO2) henvises til 39.00.00." + }, + { + "Code": "383300", + "Title": "Anden bortskaffelse af affald", + "Description": "Branchen omfatter frigivelse af flydende affald i s\u00F8er/hav eller andre vandomr\u00E5der samt injektion af pumpbart udsmidning i bl.a. br\u00F8nde og andre naturforekommende depoter." + }, + { + "Code": "390000", + "Title": "Rensning af jord og grundvand og anden dekontaminering", + "Description": "Branchen omfatter forureningsbek\u00E6mpelse, fx dekontaminering af industrianl\u00E6g, bek\u00E6mpelse af kyst- og overfladeforurening samt bek\u00E6mpelse af asbest og blyholdig maling. Branchen omfatter ogs\u00E5 oprydning, indd\u00E6mning, bek\u00E6mpelse og overv\u00E5gning af omr\u00E5der. Vandrensning i forbindelse med vandforsyning henvises til 36.00.00." + }, + { + "Code": "410000", + "Title": "Opf\u00F8relse af bygninger", + "Description": "Branchen omfatter opf\u00F8relse af alle typer bygninger samt komplet ombygning eller renovering af eksisterende bolig- og erhvervsbygninger. Gennemf\u00F8relse af byggeprojekter henvises til 68.12.00." + }, + { + "Code": "421100", + "Title": "Anl\u00E6g af veje og motorveje", + "Description": "Branchen omfatter opf\u00F8relse af gader, veje, start- og landingsbaner, vejbel\u00E6gning samt anl\u00E6g af skovstier (ikke-asfalterede)." + }, + { + "Code": "421200", + "Title": "Anl\u00E6g af jernbaner og undergrundsbaner", + "Description": "Branchen omfatter opf\u00F8relse af jernbaner, undergrundsbaner og metroer samt opf\u00F8relse af luftledninger og str\u00F8mskinner til jernbaner." + }, + { + "Code": "421300", + "Title": "Anl\u00E6g af broer og tunneller", + "Description": "Branchen omfatter opf\u00F8relse af broer, sv\u00E6vebaner og tunneller." + }, + { + "Code": "422100", + "Title": "Anl\u00E6g af ledningsnet til v\u00E6sker", + "Description": "Branchen omfatter udf\u00F8relse af anl\u00E6gsarbejde i forbindelse med anl\u00E6g af vand- og r\u00F8rledninger, reservoirer, ledningsnet, kloaksystemer og pumpestationer. Branchen omfatter ogs\u00E5 vandboring og geotermisk boring. Installation af vand- og spildevandsledninger i bygninger henvises til 43.22.00." + }, + { + "Code": "422200", + "Title": "Anl\u00E6g af ledningsnet til elektricitet og telekommunikation", + "Description": "Branchen omfatter anl\u00E6gsarbejde ift. ledningsnet til str\u00F8m, kommunikation, elv\u00E6rker, solcelle- og vindm\u00F8lleparker samt stationer til elforsyning, fx til k\u00F8ret\u00F8jer." + }, + { + "Code": "429100", + "Title": "Anl\u00E6g af vandveje, havne, diger, d\u00E6mninger mv.", + "Description": "Branchen omfatter anl\u00E6g og genopbygning af havnebassiner, floder, diger, d\u00E6mninger og lystb\u00E5dehavne samt udgravning af vandveje." + }, + { + "Code": "429900", + "Title": "Andre anl\u00E6gsaktiviteter i.a.n.", + "Description": "Branchen omfatter opf\u00F8relse af industrianl\u00E6g (ikke bygninger), fx raffinaderier, kemiske fabrikker, kornopbevaringssystemer og udend\u00F8rs sportsanl\u00E6g. Opf\u00F8relse af bygninger, der anvendes til indend\u00F8rs sport, henvises til 41.00.00 og installation af industrimaskiner og -udstyr henvises til 33.20.00." + }, + { + "Code": "431100", + "Title": "Nedrivning", + "Description": "Branchen omfatter nedrivning og demontering af bygninger og andre konstruktioner." + }, + { + "Code": "431200", + "Title": "Forberedende byggepladsarbejder", + "Description": "Branchen omfatter rydning af byggepladser og jordarbejde, fx udgravning og spr\u00E6ngning. Branchen omfatter ogs\u00E5 forberedende byggepladsarbejde i forbindelse med minedrift." + }, + { + "Code": "431300", + "Title": "Funderingsunders\u00F8gelser", + "Description": "Branchen omfatter funderingsunders\u00F8gelser, der sker i forbindelse med bygge- og anl\u00E6gsarbejde, eller med geofysiske, geologiske eller lignende form\u00E5l." + }, + { + "Code": "432100", + "Title": "El-installation", + "Description": "Branchen omfatter alle typer af el-installationer i bygninger, gadebelysning, trafiklys og solcelleanl\u00E6g p\u00E5 bygninger samt ladestandere til elektriske k\u00F8ret\u00F8jer, fx i private hjem. Opf\u00F8relse af anl\u00E6g som fx stationer med ladere til elektriske k\u00F8ret\u00F8jer henvises til 42.22.00 og overv\u00E5gning af elektroniske sikkerhedssystemer henvises til 80.09.00." + }, + { + "Code": "432200", + "Title": "Installation af vvs-, varme- og klimaanl\u00E6g", + "Description": "Branchen omfatter VVS- og blikkenslagerarbejde, herunder installation, reparation og vedligeholdelse af fx varme-, fyrings- og klimaanl\u00E6g samt solfangere til opvarmning. Branchen omfatter ogs\u00E5 installation, vedligeholdelse og reparation af distributionssystemer for medicinsk gas p\u00E5 hospitaler. Installation af elektriske gulvradiatorer henvises til 43.21.00." + }, + { + "Code": "432300", + "Title": "Installation af isolering", + "Description": "Branchen omfatter installation af alle typer isolering. Udvendig tagisolering og vandt\u00E6tning af tage henvises til 43.41.00." + }, + { + "Code": "432400", + "Title": "Andre bygningsinstallationsaktiviteter", + "Description": "Branchen omfatter installation i bygninger, fx af rulletrapper, elevatorer, k\u00F8restolslifte, lynafledere, automatiske d\u00F8re, skilte med og uden belysning, samt installation af udstyr til bygningsh\u00E5ndv\u00E6rkeres personlige sikkerhed, fx livliner." + }, + { + "Code": "433100", + "Title": "Stukkat\u00F8raktiviteter", + "Description": "Branchen omfatter stukkat\u00F8rarbejde og ops\u00E6tning af gipsv\u00E6gge i bygninger og pudsning af lofter." + }, + { + "Code": "433200", + "Title": "T\u00F8mrer- og bygningssnedkeraktiviteter", + "Description": "Branchen omfatter t\u00F8mrer- og snedkeraktiviteter i bygninger, fx montering af d\u00F8re, vinduer og skabe i tr\u00E6 eller andre materialer. Montering af automatiske d\u00F8re og svingd\u00F8re henvises til 43.24.00." + }, + { + "Code": "433300", + "Title": "Udf\u00F8relse af gulvbel\u00E6gninger og v\u00E6gbekl\u00E6dning", + "Description": "Branchen omfatter gulvbel\u00E6gninger og v\u00E6gbekl\u00E6dninger uanset art samt montering af kakkelovne. Behandling af tr\u00E6gulvsbel\u00E6gninger er ogs\u00E5 omfattet.V\u00E6gbekl\u00E6dning af udvendige v\u00E6gge henvises til 43.35.00." + }, + { + "Code": "433410", + "Title": "Maleraktiviteter", + "Description": "Branchen omfatter malerarbejde, som udf\u00F8res indvendigt og udvendigt p\u00E5 bygninger, herunder maling af anl\u00E6g og overfaldebehandling af metal p\u00E5 bygninger og andre anl\u00E6g." + }, + { + "Code": "433420", + "Title": "Glarmesteraktiviteter", + "Description": "Branchen omfatter montering af glas, spejle mv. samt autoruder og drift af glarmesterforretninger med butikshandel. Montering af vinduer henvises til 43.32.00." + }, + { + "Code": "433500", + "Title": "Anden bygningsf\u00E6rdigg\u00F8relse", + "Description": "Branchen omfatter montering af pr\u00E6fabrikerede metalplader mv., udsmykning p\u00E5 bygninger, bekl\u00E6dning af udvendige v\u00E6gge, opf\u00F8relse af skalmure og st\u00E5lstrukturer samt anden bygningsf\u00E6rdigg\u00F8relse. Indretningsaktiviteter henvises til 74.13.00 og damprensning, sandbl\u00E6sning og lignende aktiviteter p\u00E5 bygningers ydre dele henvises til 81.22.90." + }, + { + "Code": "434100", + "Title": "Tagd\u00E6kningsaktiviteter", + "Description": "Branchen omfatter tagkonstruktionsarbejde, fx montering af sp\u00E6r, isolering, vandt\u00E6tning, ovenlys og sikkerhedsudstyr. Udvendig isolering af tage er ogs\u00E5 omfattet.Indvendig isolering af tage henvises til 43.23.00." + }, + { + "Code": "434200", + "Title": "Andre specialiserede bygningsarbejder", + "Description": "Branchen omfatter specialiserede byggearbejder, fx opf\u00F8relse af fundamenter til bygninger, affugtning af bygninger samt opf\u00F8relse af skorstene og industriovne." + }, + { + "Code": "435000", + "Title": "Anl\u00E6gsaktiviteter, som kr\u00E6ver specialisering", + "Description": "Branchen omfatter specialiseret anl\u00E6gsarbejde, fx st\u00E5lelementer til anl\u00E6gsarbejder, installation af autov\u00E6rn og f\u00E6rdselsskilte mv. Vejmaling og anden markering er ogs\u00E5 omfattet.Overfladearbejde s\u00E5som vej- og brol\u00E6gning, fx af asfalt, beton eller sten, henvises til 42.11.00." + }, + { + "Code": "436000", + "Title": "Formidlingsaktiviteter i forbindelse med specialiserede bygge- og anl\u00E6gsarbejder", + "Description": "Branchen omfatter formidlingsaktiviteter i forbindelse med specialiserede bygge-og anl\u00E6gsarbejder." + }, + { + "Code": "439100", + "Title": "Murerarbejde", + "Description": "Branchen omfatter murerarbejde, blokarbejde, stens\u00E6tning mv.Overfladearbejde s\u00E5som vej- og brol\u00E6gning, fx af asfalt, beton eller sten, henvises til 42.11.00." + }, + { + "Code": "439900", + "Title": "Andre specialiserede byggeaktiviteter i.a.n.", + "Description": "Branchen omfatter specialiseret byggearbejde, fx opstilling og nedtagning af stilladser, opf\u00F8rsel af sikkerhedsudstyr, reparation af strukturer i forst\u00E6rket beton mv. Renovering, fornyelse, genopf\u00F8relse og eftermontering af historiske og ark\u00E6ologiske steder og bygninger er ogs\u00E5 omfattet.Udlejning af stilladser og arbejdsplatforme, uden opf\u00F8relse og nedtagning, henvises til 77.32.00." + }, + { + "Code": "461100", + "Title": "Agenturhandel med landbrugsr\u00E5varer, levende dyr, tekstilr\u00E5varer og halvfabrikata", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med landbrugsr\u00E5varer, levende dyr, tekstilr\u00E5varer og halvfabrikata. Engroshandel med lignende varer for egen regning henvises til gruppe 46.2 og 46.3." + }, + { + "Code": "461200", + "Title": "Agenturhandel med br\u00E6ndstoffer, malme, metaller og kemiske produkter til industrien", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med br\u00E6ndstoffer, malme og kemiske produkter til industrien. Engroshandel for egen regning henvises til gruppe 46.2-46.9." + }, + { + "Code": "461300", + "Title": "Agenturhandel med t\u00F8mmer og andre byggematerialer", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med t\u00F8mmer og andre byggematerialer. Engroshandel for egen regning henvises til gruppe 46.2-46.9." + }, + { + "Code": "461400", + "Title": "Agenturhandel med maskiner, teknisk udstyr, skibe og flyvemaskiner", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med maskiner og teknisk udstyr, fx computere, samt skibe og flyvemaskiner." + }, + { + "Code": "461500", + "Title": "Agenturhandel med m\u00F8bler, husholdningsartikler og isenkram", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med m\u00F8bler, husholdningsartikler og isenkram." + }, + { + "Code": "461600", + "Title": "Agenturhandel med tekstiler, bekl\u00E6dning, pelsv\u00E6rk, fodt\u00F8j og l\u00E6dervarer", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med tekstiler, bekl\u00E6dning, pelsv\u00E6rk, fodt\u00F8j og l\u00E6dervarer." + }, + { + "Code": "461710", + "Title": "Fiskeauktioner", + "Description": "Branchen omfatter auktioner med fisk, der s\u00E6lges for tredjepart. Engroshandel med fisk p\u00E5 egne vegne henvises til 46.38.00." + }, + { + "Code": "461790", + "Title": "Anden agenturhandel med f\u00F8de-, drikke- og tobaksvarer", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med f\u00F8de-, drikke- og tobaksvarer." + }, + { + "Code": "461810", + "Title": "Agenturhandel med motorcykler, biler, busser og trailere mv.", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med motorcykler, biler, busser, trailere mv." + }, + { + "Code": "461890", + "Title": "Agenturhandel med specialiseret varesortiment, bortset fra k\u00F8ret\u00F8jer", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med medicinalvarer, leget\u00F8j og sportsartikler samt fotografisk og optisk udstyr." + }, + { + "Code": "461900", + "Title": "Agenturhandel med ikke-specialiseret varesortiment", + "Description": "Branchen omfatter agenturhandel (p\u00E5 honorar eller kontraktbasis) med et blandet varesortiment, hvor ingen enkelt varegruppe udg\u00F8r mere end 50 pct. af oms\u00E6tningen." + }, + { + "Code": "462100", + "Title": "Engroshandel med korn, uforarbejdet tobak, s\u00E5s\u00E6d og foderstoffer", + "Description": "Branchen omfatter engroshandel med landbrugsr\u00E5varer, der skal bearbejdes f\u00F8r brug eller som bruges til foder i landbruget.Engroshandel med g\u00F8dningsstoffer henvises til 46.85.00." + }, + { + "Code": "462200", + "Title": "Engroshandel med blomster og planter", + "Description": "Branchen omfatter engroshandel med blomster, planter, blomsterl\u00F8g og juletr\u00E6er samt salg og vedligeholdelse af kontorbeplantning." + }, + { + "Code": "462300", + "Title": "Engroshandel med levende dyr", + "Description": "Branchen omfatter engroshandel med levende husdyr til landbruget og k\u00E6ledyr til husholdninger." + }, + { + "Code": "462400", + "Title": "Engroshandel med huder, skind og l\u00E6der", + "Description": "Branchen omfatter engroshandel med huder, skind, l\u00E6der, r\u00E5uld og kunstl\u00E6der. Pelsauktioner henvises til 46.11.00." + }, + { + "Code": "463100", + "Title": "Engroshandel med frugt og gr\u00F8ntsager", + "Description": "Branchen omfatter engroshandel med frisk frugt og gr\u00F8nt, herunder kartofler, samt t\u00F8rret, konserveret og frossent frugt og gr\u00F8nt. Engroshandel med saft af frugt og gr\u00F8nt henvises til 46.34.10." + }, + { + "Code": "463210", + "Title": "Engroshandel med k\u00F8d og k\u00F8dprodukter", + "Description": "Branchen omfatter engroshandel med k\u00F8d og k\u00F8dprodukter fra b\u00E5de vildt og opdr\u00E6ttede dyr, herunder fjerkr\u00E6. Engroshandel med foder til husdyr henvises til 46.21.00 og engroshandel med foder til k\u00E6ledyr henvises til 46.38.00." + }, + { + "Code": "463220", + "Title": "Engroshandel med fisk og fiskeprodukter", + "Description": "Branchen omfatter engroshandel med fisk og fiskeprodukter samt alger og tang." + }, + { + "Code": "463300", + "Title": "Engroshandel med mejeriprodukter, \u00E6g samt spiselige olier og fedtstoffer", + "Description": "Branchen omfatter engroshandel med mejeriprodukter, \u00E6g og \u00E6gprodukter samt spiselige olier og fedtstoffer." + }, + { + "Code": "463410", + "Title": "Engroshandel med \u00F8l, mineralvand, frugt- og gr\u00F8ntsagssaft", + "Description": "Branchen omfatter engroshandel med drikkevarer, herunder frugt- og gr\u00F8ntsagsjuice og \u00F8l.Engroshandel med vin og spiritus henvises til 46.34.20." + }, + { + "Code": "463420", + "Title": "Engroshandel med vin og spiritus", + "Description": "Branchen omfatter engroshandel med alkoholiske drikkevarer, herunder tapning p\u00E5 egne flasker (uden omdannelse). Engroshandel med \u00F8l henvises til 46.34.10." + }, + { + "Code": "463500", + "Title": "Engroshandel med tobaksvarer", + "Description": "Branchen omfatter engroshandel med tobaksvarer, som er klar til brug, samt udstyr hertil, inkl. e-cigaretter. Engroshandel med e-v\u00E6ske til e-cigaretter henvises til 46.85.00. Engroshandel med r\u00E5tobak henvises til 46.21.00." + }, + { + "Code": "463600", + "Title": "Engroshandel med sukker, chokolade og sukkervarer", + "Description": "Branchen omfatter engroshandel med sukker og chokolade samt fabriksfremstillet br\u00F8d, kager og kiks." + }, + { + "Code": "463700", + "Title": "Engroshandel med kaffe, te, kakao og krydderier", + "Description": "Branchen omfatter engroshandel med kaffe, te, kakao og krydderier. Forarbejdning af te og kaffe henvises til 10.83.00." + }, + { + "Code": "463800", + "Title": "Engroshandel med andre f\u00F8devarer", + "Description": "Branchen omfatter specialiseret engroshandel med andre f\u00F8devarer, som ikke allerede er klassificeret i undergrupperne 46.31-46.37, fx engroshandel med f\u00E6rdigretter, helsekostprodukter, kosttilskud, di\u00E6tmad eller foder til k\u00E6ledyr." + }, + { + "Code": "463900", + "Title": "Ikke-specialiseret engroshandel med f\u00F8de-, drikke- og tobaksvarer", + "Description": "Branchen omfatter engroshandel med et bredt varesortiment, dvs. flere varegrupper indenfor f\u00F8de-, drikke- og tobaksvarekategorierne, hvor \u00E9n varegruppe ikke udg\u00F8r hovedparten af oms\u00E6tningen." + }, + { + "Code": "464100", + "Title": "Engroshandel med tekstiler", + "Description": "Branchen omfatter engroshandel med sytr\u00E5d, garn, kjolestoffer, h\u00E5ndkl\u00E6der, linned, dun og dyner. Engroshandel med soveposer eller gulvt\u00E6pper henvises til 46.49.10 og 46.47.00." + }, + { + "Code": "464210", + "Title": "Engroshandel med bekl\u00E6dning", + "Description": "Branchen omfatter engroshandel med t\u00F8j, inklusive sportst\u00F8j og arbejdst\u00F8j. Branchen omfatter ogs\u00E5 engroshandel med tilbeh\u00F8r, fx slips, handsker, hatte, pelsartikler og paraplyer.Engroshandel med fodt\u00F8j henvises til 46.42.20." + }, + { + "Code": "464220", + "Title": "Engroshandel med fodt\u00F8j", + "Description": "Branchen omfatter engroshandel med fodt\u00F8j i alle materialer.Engroshandel med s\u00E6rligt sportsfodt\u00F8j, der kun anvendes i forbindelse med en sport, henvises til 46.49.10." + }, + { + "Code": "464310", + "Title": "Engroshandel med hvidevarer og elektriske husholdningsartikler", + "Description": "Branchen omfatter engroshandel med h\u00E5rde hvidevarer, fx k\u00F8leskabe og vaskemaskiner samt elektriske husholdningsartikler." + }, + { + "Code": "464320", + "Title": "Engroshandel med radio og tv, fotografiske og optiske artikler", + "Description": "Branchen omfatter engroshandel med radio og tv samt fotografiske og optiske artikler, fx briller og mikroskoper.Engroshandel med korrigerende briller, kontaktlinser og solbriller henvises til 46.46.10." + }, + { + "Code": "464410", + "Title": "Engroshandel med porcel\u00E6ns- og glasvarer", + "Description": "Branchen omfatter engroshandel med varer af porcel\u00E6n eller glas samt k\u00F8kkengrej." + }, + { + "Code": "464420", + "Title": "Engroshandel med reng\u00F8ringsmidler", + "Description": "Branchen omfatter engroshandel med reng\u00F8ringsmidler, inkl. autoplejemidler." + }, + { + "Code": "464500", + "Title": "Engroshandel med parfumerivarer og kosmetik", + "Description": "Branchen omfatter engroshandel med kosmetik, parfume, solcreme, shampoo, badesalt, tandpasta mv." + }, + { + "Code": "464610", + "Title": "Engroshandel med medicinalvarer og sygeplejeartikler", + "Description": "Branchen omfatter engroshandel med ortop\u00E6diske-, sygepleje- og medicinske artikler samt antibiotika mv. Engroshandel med slankeprodukter og naturmedicin henvises til 46.38.00." + }, + { + "Code": "464620", + "Title": "Engroshandel med l\u00E6ge- og hospitalsartikler", + "Description": "Branchen omfatter engroshandel med inventar til hospitaler og tandl\u00E6ger, fx r\u00F8ngtenapparater, operationsborde, senge, tandl\u00E6gestole mv." + }, + { + "Code": "464700", + "Title": "Engroshandel med m\u00F8bler til bolig-, kontor- og butiksbrug, t\u00E6pper og belysningsartikler", + "Description": "Branchen omfatter engroshandel med m\u00F8bler, t\u00E6pper og belysningsartikler.Engroshandel med l\u00E6ge- og hospitalsudstyr henvises til 46.46.20." + }, + { + "Code": "464800", + "Title": "Engroshandel med ure og smykker", + "Description": "Branchen omfatter engroshandel med ure og smykker i alle materialer samt andre artikler i guld og s\u00F8lv." + }, + { + "Code": "464910", + "Title": "Engroshandel med cykler, sportsartikler og lystb\u00E5de", + "Description": "Branchen omfatter engroshandel med udstyr til sports- og fritidsaktiviteter, herunder cykler, campingudstyr, segways, hoverboards mv. Branchen omfatter ogs\u00E5 engroshandel med fodboldst\u00F8vler, barnevogne, b\u00E6reseler, klapvogne og autostole til b\u00F8rn." + }, + { + "Code": "464920", + "Title": "Engroshandel med b\u00F8ger, papir og papirvarer", + "Description": "Branchen omfatter engroshandel med kontorartikler, b\u00F8ger, papir og papirvarer." + }, + { + "Code": "464930", + "Title": "Engroshandel med kufferter og l\u00E6dervarer", + "Description": "Branchen omfatter engroshandel med kufferter og l\u00E6dervarer." + }, + { + "Code": "464990", + "Title": "Engroshandel med andre husholdningsartikler i.a.n.", + "Description": "Branchen omfatter engroshandel med hobbyartikler, leget\u00F8j, musikinstrumenter, tr\u00E6-, kurve- og korkvarer samt spil. Engroshandel med gryder, pander og bestik er ogs\u00E5 omfattet." + }, + { + "Code": "465000", + "Title": "Engroshandel med informations- og kommunikationsudstyr", + "Description": "Branchen omfatter engroshandel med informations- eller kommunikationsudstyr samt kontormaskiner og udstyr, fx computere, videospil p\u00E5 fysisk medier, microchips, medier til optagelse mv." + }, + { + "Code": "466100", + "Title": "Engroshandel med landbrugsmaskiner, -udstyr og tilbeh\u00F8r hertil", + "Description": "Branchen omfatter engroshandel med landbrugsmaskiner og udstyr hertil, fx pl\u00F8jemaskiner, g\u00F8dningsspredere, h\u00F8stmaskiner, malkemaskiner, traktorer til land- og skovbrug, haveredskaber og pl\u00E6neklippere." + }, + { + "Code": "466200", + "Title": "Engroshandel med v\u00E6rkt\u00F8jsmaskiner", + "Description": "Branchen omfatter engroshandel med alle typer v\u00E6rkst\u00F8jsmakiner til alle typer materialer." + }, + { + "Code": "466300", + "Title": "Engroshandel med maskiner til minedrift og bygge- og anl\u00E6gsaktiviteter", + "Description": "Branchen omfatter engroshandel med maskiner til minedrift og bygge- og anl\u00E6gsaktiviteter." + }, + { + "Code": "466400", + "Title": "Engroshandel med andre maskiner og andet udstyr", + "Description": "Branchen omfatter engroshandel med specialiserede maskiner og udstyr, som ikke allerede er klassificeret i undergrupperne 46.61-46.63." + }, + { + "Code": "467100", + "Title": "Engroshandel med motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter engroshandel med nye og brugte motork\u00F8ret\u00F8jer, herunder ambulancer, anh\u00E6ngere og campingvogne." + }, + { + "Code": "467200", + "Title": "Engroshandel med reservedele og tilbeh\u00F8r til motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter engroshandel med reservedele og tilbeh\u00F8r til motork\u00F8ret\u00F8jer, fx batterier og d\u00E6k." + }, + { + "Code": "467300", + "Title": "Engroshandel med motorcykler samt reservedele og tilbeh\u00F8r dertil", + "Description": "Branchen omfatter engroshandel med b\u00E5de nye og brugte motorcykler og knallerter samt tilbeh\u00F8r hertil, fx motorcykelhjelme og reservedele." + }, + { + "Code": "468100", + "Title": "Engroshandel med fast, flydende og luftformigt br\u00E6ndstof og lignende varer", + "Description": "Branchen omfatter engroshandel med br\u00E6ndstoffer, herunder sm\u00F8refedt, sm\u00F8reolie, olie, tr\u00E6kul, br\u00E6nde, rensebenzin, flaskegas, vaseline og raffinerede olieprodukter." + }, + { + "Code": "468200", + "Title": "Engroshandel med metaller og metalmalme", + "Description": "Branchen omfatter engroshandel med metaller og metalmalme samt guld og andre \u00E6delmetaller. Engroshandel med jernholdige og ikke-jernholdige halvfabrikata i metal er ogs\u00E5 omfattet.Engroshandel med gammelt jern henvises til 46.87.00." + }, + { + "Code": "468300", + "Title": "Engroshandel med tr\u00E6 og byggematerialer samt sanitetsartikler", + "Description": "Branchen omfatter engroshandel med b\u00E5de r\u00E5tr\u00E6 og behandlet tr\u00E6 samt andre byggematerialer, fx sand, stilladser, sanitetsartikler, maling mv." + }, + { + "Code": "468400", + "Title": "Engroshandel med isenkram, varmeanl\u00E6g og tilbeh\u00F8r", + "Description": "Branchen omfatter engroshandel med en bred vifte af varer, der sp\u00E6nder fra vandvarmere og radiatorer til udstyr til sanit\u00E6re installationer, h\u00E5ndv\u00E6rkt\u00F8j mv." + }, + { + "Code": "468500", + "Title": "Engroshandel med kemiske produkter", + "Description": "Branchen omfatter engroshandel med kemiske produkter til industrien, fx kemisk lim, farvestifter, duft- og smagsstoffer, g\u00F8dningsstoffer, brint mv. Engroshandel med e-v\u00E6sker til elektroniske cigaretter er ogs\u00E5 omfattet.Engroshandel med elektroniske cigaretter (e-cigaretter) henvises til 46.35.00." + }, + { + "Code": "468600", + "Title": "Engroshandel med andre r\u00E5varer og halvfabrikata", + "Description": "Branchen omfatter engroshandel med andre r\u00E5varer og halvfabrikata, fx gummi, plast, papirmasse, emballageartikler og r\u00E5 \u00E6delsten." + }, + { + "Code": "468700", + "Title": "Engroshandel med affaldsprodukter", + "Description": "Branchen omfatter engroshandel med affaldsprodukter, herunder indsamling, sortering, demontering af materialer fra biler, computere og sk\u00E6rme til genbrug." + }, + { + "Code": "468900", + "Title": "Anden specialiseret engroshandel i.a.n.", + "Description": "Branchen omfatter specialiseret engroshandel med varer, som ikke er n\u00E6vnt i andre undergrupper i 46.2-46.8." + }, + { + "Code": "469000", + "Title": "Ikke-specialiseret engroshandel", + "Description": "Branchen omfatter ikke-specialiseret engroshandel, hvilket vil sige handel med varer fra mindst fem forskellige grupper (omfattet af 4-cifrede koder i grupperne 46.2-46.8) og hvor ingen varegruppe er dominerende." + }, + { + "Code": "471110", + "Title": "Detailhandel med kioskvarer", + "Description": "Branchen omfatter detailhandel med et smalt udvalg af varer, \u0027kioskvarer\u0027, herunder f\u00E5 eller ingen friske f\u00F8devarer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "471120", + "Title": "Detailhandel med dagligvarer i supermarkeder og k\u00F8bmandsbutikker", + "Description": "Branchen omfatter detailhandel med et bredt sortiment af dagligvarer med hovedv\u00E6gten p\u00E5 f\u00F8de- og drikkevarer med henblik p\u00E5 at g\u00F8re det muligt for kunderne at k\u00F8be alle dagligvarer \u00E9t sted. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "471130", + "Title": "Detailhandel med dagligvarer i discountsupermarkeder", + "Description": "Branchen omfatter detailhandel med et begr\u00E6nset udvalg af dagligvarer, med henblik at v\u00E6re billig. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "471200", + "Title": "Anden ikke-specialiseret detailhandel", + "Description": "Branchen omfatter ikke-specialiseret detailhandel med mange forskellige varer i samme enhed, hvor hovedv\u00E6gten ikke er p\u00E5 f\u00F8devarer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "472100", + "Title": "Detailhandel med frugt og gr\u00F8ntsager", + "Description": "Branchen omfatter specialiseret detailhandel med frugt og gr\u00F8nt til private. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "472200", + "Title": "Detailhandel med k\u00F8d og k\u00F8dprodukter", + "Description": "Branchen omfatter specialiseret detailhandel med k\u00F8d, k\u00F8dprodukter og fjerkr\u00E6 til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Sm\u00F8rrebr\u00F8d lavet til umiddelbar fort\u00E6ring henvises til 56.11.90." + }, + { + "Code": "472300", + "Title": "Detailhandel med fisk, krebsdyr og bl\u00F8ddyr", + "Description": "Branchen omfatter fiskeforretninger, der s\u00E6lger fisk og lignende til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "472400", + "Title": "Detailhandel med bagv\u00E6rk og konfekture", + "Description": "Branchen omfatter detailhandel med br\u00F8d og kager, uden eget bageri, samt detailhandel med slik og andre sukkervarer. Branchen omfatter ogs\u00E5 bagerprodukter, hvor \u0022\u0022bake-off\u2019 benyttes. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med br\u00F8d og kager, herunder hvis bagt i eget bageri, henvises til 10.71.20." + }, + { + "Code": "472500", + "Title": "Detailhandel med drikkevarer", + "Description": "Branchen omfatter detailhandel med drikkevarer med/uden alkohol til privatpersoner, fx sodavand, \u00F8l eller vin. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Salg af drikkevarer til indtagelse p\u00E5 stedet henvises til 56.30.10 og 56.30.20." + }, + { + "Code": "472600", + "Title": "Detailhandel med tobaksvarer", + "Description": "Branchen omfatter detailhandel med tobak og lignende produkter, fx e-cigaretter og e-v\u00E6sker, til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "472700", + "Title": "Detailhandel med andre f\u00F8devarer", + "Description": "Branchen omfatter specialiseret detailhandel med f\u00F8devarer til privatpersoner, fx ost, helseprodukter, kaffe/te eller delikatesser. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "473000", + "Title": "Detailhandel med motorbr\u00E6ndstoffer", + "Description": "Branchen omfatter tankstationer, hvor hovedv\u00E6gten er p\u00E5 salg af flydende br\u00E6ndstof, eventuelt med tilknyttet kiosk. Tankstationer, hvor hovedv\u00E6gten er p\u00E5 el, henvises til 35.15.10. Hvis hovedv\u00E6gten er p\u00E5 kiosksalg, henvises der til 47.11.10." + }, + { + "Code": "474000", + "Title": "Detailhandel med informations- og kommunikationsudstyr", + "Description": "Branchen omfatter detailhandel med forbrugerelektronik samt informations- og kommunikationsteknologisk udstyr. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "475100", + "Title": "Detailhandel med tekstiler", + "Description": "Branchen omfatter butikker, der s\u00E6lger stoffer og garn samt syartikler, fx n\u00E5le og tr\u00E5de, til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker. Branchen omfatter ikke boligtekstiler og f\u00E6rdigsyet t\u00F8j." + }, + { + "Code": "475210", + "Title": "Detailhandel med maling og tapet", + "Description": "Branchen omfatter detailhandel med maling og tapet samt tilbeh\u00F8r hertil til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "475220", + "Title": "Detailhandel med byggematerialer og v\u00E6rkt\u00F8j", + "Description": "Branchen omfatter detailhandel med byggematerialer, v\u00E6rkt\u00F8j og andet isenkram (skruer, s\u00F8m, beslag mv.), hovedsageligt til privatpersoner, som g\u00F8r-det-selv. Detailhandel med havemaskiner og sauner, swimmingpools mv. uden installation er ogs\u00E5 omfattet. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "475300", + "Title": "Detailhandel med t\u00E6pper, v\u00E6gbekl\u00E6dning og gulvbel\u00E6gning", + "Description": "Branchen omfatter detailhandel med t\u00E6pper, v\u00E6gbekl\u00E6dning, gulvbel\u00E6gning, gardiner samt gardinmontage til privatpersoner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "475400", + "Title": "Detailhandel med elektriske husholdningsapparater", + "Description": "Branchen omfatter detailhandel med h\u00E5rde hvidevarer, fx st\u00F8vsugere, symaskiner og kaffemaskiner. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med havemaskiner, fx pl\u00E6neklippere, og andet elektrisk h\u00E5ndv\u00E6rkt\u00F8j henvises til 47.52.20." + }, + { + "Code": "475510", + "Title": "Detailhandel med m\u00F8bler", + "Description": "Branchen omfatter detailhandel med m\u00F8bler, kurvem\u00F8bler, kontorm\u00F8bler og madrasser. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med brugte m\u00F8bler og antikviteter henvises til 47.79.00." + }, + { + "Code": "475520", + "Title": "Detailhandel med bad- og k\u00F8kkenelementer mv.", + "Description": "Branchen omfatter detailhandel med k\u00F8kken- og badev\u00E6relseselementer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med sanitetsartikler, fx badekar og kummer, henvises til 47.52.20." + }, + { + "Code": "475530", + "Title": "Detailhandel med k\u00F8kkenudstyr og service mv.", + "Description": "Branchen omfatter detailhandel med k\u00F8kkenredskaber, service, bestik, glas, lert\u00F8j mv. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "475590", + "Title": "Detailhandel med boligtekstiler, belysnings- og husholdningsartikler i.a.n.", + "Description": "Branchen omfatter detailhandel med boligtekstiler, belysningsartikler, ikke-elektriske husholdsapparater og babyudstyr, fx barnevogne, klapvogne, gangstativer, b\u00E6reseler og barnes\u00E6der. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med baby- og b\u00F8rnet\u00F8j henvises til 47.71.20." + }, + { + "Code": "476100", + "Title": "Detailhandel med b\u00F8ger", + "Description": "Branchen omfatter detailhandel med b\u00F8ger, og evt. papirvarer, men med hovedv\u00E6gt p\u00E5 b\u00F8ger. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476200", + "Title": "Detailhandel med aviser og andre tidsskrifter samt kontorartikler", + "Description": "Branchen omfatter detailhandel med aviser, papirvarer og kontorartikler. Detailhandel med plakater er ogs\u00E5 omfattet. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476310", + "Title": "Detailhandel med sports- og fritidsudstyr", + "Description": "Branchen omfatter detailhandel med udstyr til sport, camping og andre fritidsaktiviteter, fx atletik, jagt, lystfiskeri mv. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476320", + "Title": "Detailhandel med cykler", + "Description": "Branchen omfatter detailhandel med cykler og tilbeh\u00F8r hertil. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Reparation af cykler mv. henvises til 95.29.00." + }, + { + "Code": "476330", + "Title": "Detailhandel med lystb\u00E5de og udstyr hertil", + "Description": "Branchen omfatter detailhandel med lystb\u00E5de og tilbeh\u00F8r hertil. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476400", + "Title": "Detailhandel med spil og leget\u00F8j", + "Description": "Branchen omfatter detailhandel med spil, leget\u00F8j og festartikler. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476910", + "Title": "Detailhandel med musikinstrumenter", + "Description": "Branchen omfatter detailhandel med indspillet musik og musikinstrumenter samt tilbeh\u00F8r hertil, fx cd\u0027er, strenge og nodestativer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476920", + "Title": "Detailhandel med kunst mv.", + "Description": "Branchen omfatter detailhandel med kunst i kommercielle kunstgallerier, herunder artikler til fx m\u00F8nt- og frim\u00E6rkesamlere. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "476990", + "Title": "Detailhandel med andre kulturelle artikler i.a.n", + "Description": "Branchen omfatter detailhandel med hobby- og gaveartikler, inkl. brugskunst. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477110", + "Title": "Detailhandel med t\u00F8j", + "Description": "Branchen omfatter detailhandel med t\u00F8j. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med baby- og b\u00F8rnet\u00F8j henvises til 47.71.20 og detailhandel med brugt t\u00F8j henvises til 47.79.00." + }, + { + "Code": "477120", + "Title": "Detailhandel med baby- og b\u00F8rnet\u00F8j", + "Description": "Branchen omfatter detailhandel med hovedv\u00E6gt p\u00E5 baby- og b\u00F8rnet\u00F8j. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477210", + "Title": "Detailhandel med fodt\u00F8j", + "Description": "Branchen omfatter detailhandel med sko. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Skoreparationer henvises til 95.23.00." + }, + { + "Code": "477220", + "Title": "Detailhandel med l\u00E6dervarer", + "Description": "Branchen omfatter detailhandel med l\u00E6dervarer, inkl. tasker og andre rejseartikler af l\u00E6der. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477300", + "Title": "Detailhandel med farmaceutiske produkter", + "Description": "Branchen omfatter detailhandel med medicinalvarer til privatpersoner, b\u00E5de receptpligtige varer og h\u00E5ndk\u00F8bsl\u00E6gemidler. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477410", + "Title": "Optikeraktiviteter", + "Description": "Branchen omfatter detailhandel med briller, linser og solbriller. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477420", + "Title": "Detailhandel med andre medicinske og ortop\u00E6diske artikler", + "Description": "Branchen omfatter detailhandel med andre medicinske og ortop\u00E6diske artikler, fx h\u00F8reapparater, st\u00F8ttestr\u00F8mper, bandager mv. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477500", + "Title": "Detailhandel med kosmetikvarer og toiletartikler", + "Description": "Branchen omfatter detailhandel med produkter til personlig pleje, fx s\u00E6be, shampoo, kosmetik og aftershave. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477610", + "Title": "Detailhandel med blomster og planter", + "Description": "Branchen omfatter detailhandel med blomster, planter og fr\u00F8 samt g\u00F8dning. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477620", + "Title": "Detailhandel med k\u00E6ledyr og udstyr til k\u00E6ledyr", + "Description": "Branchen omfatter detailhandel med k\u00E6ledyr samt tilbeh\u00F8r til disse, fx hunde-/kattemad, kaniner, akvariefisk mv. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477700", + "Title": "Detailhandel med ure og smykker", + "Description": "Branchen omfatter detailhandel med ure og smykker (af \u00E6dle metaller) samt guld- og s\u00F8lvvarer, fx s\u00F8lvt\u00F8j, lysestager mv. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Detailhandel med bijouteri henvises til 47.78.00." + }, + { + "Code": "477800", + "Title": "Detailhandel med andre nye varer", + "Description": "Branchen omfatter detailhandel med andre nye varer, fx fotografiapparater, kunstige blomster, kikkerter, souvenir, bijouteri, kunsth\u00E5ndv\u00E6rk, fyringsolie, br\u00E6nde og andre nonfood varer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker." + }, + { + "Code": "477900", + "Title": "Detailhandel med brugte varer", + "Description": "Branchen omfatter detailhandel med genbrugsvarer, antikviteter og andre brugte varer, dog ikke brugte motork\u00F8ret\u00F8jer. Salget kan foreg\u00E5 p\u00E5 internettet (fx via sociale medier), p\u00E5 markeder og i fysiske butikker.Auktionshuses salg af varer (p\u00E5 vegne af tredjepart) til private henvises til 47.9. Loppesupermarkeders udlejning af reol- eller gulvplads til private, inklusiv salgspersonale, henvises til 47.91.00." + }, + { + "Code": "478100", + "Title": "Detailhandel med motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter detailhandel med nye og brugte personbiler, varebiler og minibusser, inklusiv campingvogne og trailere." + }, + { + "Code": "478200", + "Title": "Detailhandel med reservedele og tilbeh\u00F8r til motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter detailhandel med alle typer reservedele, komponenter, udstyr, redskaber og tilbeh\u00F8r til motork\u00F8ret\u00F8jer, undtagen til motorcykler, jf. 47.83.00. Motorbr\u00E6ndstof betragtes ikke som en reservedel." + }, + { + "Code": "478300", + "Title": "Detailhandel med motorcykler samt reservedele og tilbeh\u00F8r dertil", + "Description": "Branchen omfatter detailhandel med motorcykler, knallerter og scootere samt reservedele og tilbeh\u00F8r hertil." + }, + { + "Code": "479100", + "Title": "Formidlingsaktiviteter inden for ikke-specialiseret detailhandel", + "Description": "Branchen omfatter formidling af transaktioner mellem s\u00E6lgere og k\u00F8bere, dvs. mellem ikke-specialiserede detailhandlere og privatforbrugere. Branchen omfatter ogs\u00E5 udlejning af salgsplads til private, fx i reolsupermarkeder og lignende." + }, + { + "Code": "479200", + "Title": "Formidlingsaktiviteter inden for specialiseret detailhandel", + "Description": "Branchen omfatter formidling af transaktioner mellem s\u00E6lgere og k\u00F8bere, dvs. mellem specialiserede detailhandlere og privatforbrugere." + }, + { + "Code": "491100", + "Title": "Persontransport med regional- eller fjerntog", + "Description": "Branchen omfatter transport af passagerer med regional- og fjerntog, heunder drift af sove- og spisevogne, som led i driften af jernbaneselskaber. Drift af sove- eller spisevogne drevet af s\u00E6rskilte enheder henvises til 55.90.00 og 56.11.10." + }, + { + "Code": "491200", + "Title": "Persontransport med n\u00E6rbane", + "Description": "Branchen omfatter passagertransport p\u00E5 skinner i by- og forstadsomr\u00E5der." + }, + { + "Code": "492000", + "Title": "Godstransport med tog", + "Description": "Branchen omfatter al godstransport med tog og tovbaner.Godsh\u00E5ndtering og godsterminalaktiviteter henvises til 52.24.00 og 52.21.10." + }, + { + "Code": "493100", + "Title": "Passagertransport ad vej med fast k\u00F8replan", + "Description": "Branchen omfatter persontransport i k\u00F8ret\u00F8jer med fast k\u00F8replan, fx bybusser, skolebusser og medarbejdertransport." + }, + { + "Code": "493200", + "Title": "Passagertransport ad vej uden fast k\u00F8replan", + "Description": "Branchen omfatter persontransport i k\u00F8ret\u00F8jer (til 10 personer eller flere) uden fast k\u00F8replan, fx med turistbus eller minibus. Persontansport i k\u00F8ret\u00F8j (max 9 personer) med chauff\u00F8r, fx taxi eller limousine, henvises til 49.33.00." + }, + { + "Code": "493300", + "Title": "Passagertransport p\u00E5 bestilling i k\u00F8ret\u00F8j med chauff\u00F8r", + "Description": "Branchen omfatter persontransport (til max 9 personer) p\u00E5 bestilling, i k\u00F8ret\u00F8j med chauff\u00F8r, fx taxa eller limousine." + }, + { + "Code": "493400", + "Title": "Passagertransport med tovbaner og skilifter", + "Description": "Branchen omfatter passagertransport med tovbaner, ski- og stolelifte, herunder godstransport med tovbaner." + }, + { + "Code": "493900", + "Title": "Anden landpassagertransport i.a.n.", + "Description": "Branchen omfatter passagertransport med k\u00F8ret\u00F8jer, der tr\u00E6kkes af mennesker eller dyr, fx cykeltaxi eller hestevogn." + }, + { + "Code": "494100", + "Title": "Vejgodstransport", + "Description": "Branchen omfatter transport af gods ad vej, fx med levende dyr eller biler. Flytteaktiviteter henvises til 49.42.00." + }, + { + "Code": "494200", + "Title": "Flytteaktiviteter", + "Description": "Branchen omfatter flytning for virksomheder og husholdninger ad vej, herunder opbevaring af flyttegods." + }, + { + "Code": "495000", + "Title": "R\u00F8rtransport", + "Description": "Branchen omfatter transport af gasser, v\u00E6sker, slam mv. via r\u00F8rledninger samt drift af pumpestationer. Distribution af v\u00E6sker med lastbil henvises til 49.41.00." + }, + { + "Code": "501000", + "Title": "S\u00F8- og kysttransport af passagerer", + "Description": "Branchen omfatter s\u00F8- og kysttransport af passagerer, fx med f\u00E6rger eller vandtaxier. Branchen omfatter ogs\u00E5 udlejning af fritidsb\u00E5de med bes\u00E6tning til s\u00F8- og kysttransport, fx til fisketure." + }, + { + "Code": "502000", + "Title": "S\u00F8- og kysttransport af gods", + "Description": "Branchen omfatter s\u00F8- og kysttransport af gods, inkl. bugsering af pramme eller olieboreplatforme. Branchen omfatter ogs\u00E5 udlejning af fart\u00F8jer med bes\u00E6tning til s\u00F8- og kysttransport af gods." + }, + { + "Code": "503000", + "Title": "Transport af passagerer ad indre vandveje", + "Description": "Branchen omfatter transport af passagerer ad floder, kanaler, havne og andre indre vandveje. Branchen omfatter ogs\u00E5 udlejning af fritidsb\u00E5de med bes\u00E6tning til transport ad indre vandveje." + }, + { + "Code": "504000", + "Title": "Transport af gods ad indre vandveje", + "Description": "Branchen omfatter transport af gods ad floder, kanaler, havne og andre indre vandveje. Branchen omfatter ogs\u00E5 udlejning af fart\u00F8jer med bes\u00E6tning til transport af gods ad indre vandveje." + }, + { + "Code": "511010", + "Title": "Passagertransport med rutefly", + "Description": "Branchen omfatter ruteflyvning med passagerer." + }, + { + "Code": "511020", + "Title": "Passagertransport med charter- og taxifly", + "Description": "Branchen omfatter charter- og taxiflyvning og sightseeing. Branchen omfatter ogs\u00E5 udlejning af lufttransportudstyr med operat\u00F8r med henblik p\u00E5 passagertransport." + }, + { + "Code": "512100", + "Title": "Lufttransport af gods", + "Description": "Branchen omfatter lufttransport af gods samt udlejning af lufttransportudstyr med operat\u00F8r med henblik p\u00E5 godstransport." + }, + { + "Code": "512200", + "Title": "Rumfart", + "Description": "Branchen omfatter rumtransport af gods og passagerer samt opsendelse af satellitter og rumfart\u00F8jer." + }, + { + "Code": "521000", + "Title": "Oplagring og opbevaring", + "Description": "Branchen omfatter drift af kornsiloer, pakhuse, k\u00F8le- og m\u00F8bellagre mv. Drift af selfstorage-faciliteter henvises til 68.20.40 og opbevaring af m\u00F8bler som en del af en flytteaktivitet henvises til 49.42.00." + }, + { + "Code": "522110", + "Title": "Drift af stationer, godsterminaler mv.", + "Description": "Branchen omfatter drift af terminalfaciliteter, fx jernbane- og busstationer. Godsh\u00E5ndtering henvises til 52.24.00." + }, + { + "Code": "522120", + "Title": "Drift af parkering og vejhj\u00E6lp mv.", + "Description": "Branchen omfatter drift af parkeringspladser og -garager, cykelparkering, vinteropbevaring af campingvogne mv. Branchen omfatter ogs\u00E5 bugsering og vejhj\u00E6lp." + }, + { + "Code": "522130", + "Title": "Drift af betalingsveje, -broer og -tunneler", + "Description": "Branchen omfatter drift af betalingsveje, -broer og -tunneler. Anl\u00E6g og vedligeholdelse af veje henvises til 42.11.00 og anl\u00E6g og vedligeholdelse af broer og tunneller henvises til 42.12.00." + }, + { + "Code": "522210", + "Title": "Drift af erhvervshavne", + "Description": "Branchen omfatter drift af erhvervshavne, moler og sluser. Udgravning og vedligeholdelse af vandveje henvises til 42.91.00." + }, + { + "Code": "522220", + "Title": "Drift af bugserings-, bj\u00E6rgnings- og redningsv\u00E6sen mv.", + "Description": "Branchen omfatter rednings-, navigations og bugseringsv\u00E6sen, bj\u00E6rningsaktiviteter og drift af fyrt\u00E5rne." + }, + { + "Code": "522300", + "Title": "Serviceydelser i forbindelse med luftfart", + "Description": "Branchen omfatter serviceydelser i forbindelse med lufttransport af passagerer, dyr og gods, fx drift af lufthavnsterminaler, luftkontrol og opbevaring af fly." + }, + { + "Code": "522400", + "Title": "Godsh\u00E5ndtering", + "Description": "Branchen omfatter lastning og losning af gods og baggage samt udlejning af portal- eller vippekraner til godsh\u00E5ndtering mv." + }, + { + "Code": "522500", + "Title": "Serviceydelser i forbindelse med logistik", + "Description": "Branchen omfatter serviceydelser i forbindelse med logistik, fx distributionsaktiviteter, opsamling af varer til forsendelse og midlertidig pakning i transportkasser. Speditionsaktiviteter henvises til 52.26.00." + }, + { + "Code": "522600", + "Title": "Andre st\u00F8tteaktiviteter i forbindelse med transport", + "Description": "Branchen omfatter st\u00F8tteaktiviteter til transportbranchen, fx udstedelse af transportdokumenter, organisering af transportaktiviteter og speditionsaktiviteter." + }, + { + "Code": "523100", + "Title": "Formidlingsaktiviteter inden for godstransport", + "Description": "Branchen omfatter formidlingsaktiviteter inden for godstransport, fx jernbane-, skibs- og flyfragtagentaktiviteter." + }, + { + "Code": "523200", + "Title": "Formidlingsaktiviteter inden for passagertransport", + "Description": "Branchen omfatter formidlingsaktiviteter i forbindelse med passagertransport, fx formidling af taxitjenester (uden at transportere) eller reservations- og bookingtjenester i forbindelse med passagertransport." + }, + { + "Code": "531000", + "Title": "Postaktiviteter omfattet af forsyningspligten", + "Description": "Branchen omfatter posttjenester under befordringspligten, inkl. forbehandling af uddeling, fx opsamling og sortering." + }, + { + "Code": "532000", + "Title": "Andre post- og kur\u00E9raktiviteter", + "Description": "Branchen omfatter post- og kurertjenester, der ikke er omfattet af befordringspligten, fx afhentning, sortering, transport og udbringning (b\u00E5de nationalt og internationalt) af brevpost og pakker. Branchen omfatter ogs\u00E5 hjemmelevering af mad og f\u00F8devarer." + }, + { + "Code": "533000", + "Title": "Formidlingsaktiviteter inden for post- og kur\u00E9raktiviteter", + "Description": "Branchen omfatter formidlingsaktiviteter inden for post- og kurertjenester af tredjepart for posttjenesteudbyderen. Drift af onlineplaforme, hvor der kan bestilles levering af mad, er ogs\u00E5 omfattet." + }, + { + "Code": "551000", + "Title": "Drift af hoteller og lignende overnatningsfaciliteter", + "Description": "Branchen omfatter udbud af indkvartering p\u00E5 hoteller, suite- og lejlighedshoteller p\u00E5 daglig eller ugentlig basis. Der tilbydes daglig reng\u00F8ring og sengeredning, men der kan leveres yderligere tjenesteydelser, fx mad og drikke, t\u00F8jvask, tr\u00E6nings- eller m\u00F8defaciliteter. Overnatningsfaciliteter uden daglig reng\u00F8ring, sengeredning og kundeservice p\u00E5 stedet henvises til 55.20.00." + }, + { + "Code": "552000", + "Title": "Drift af ferieboliger og andre overnatningsfaciliteter til kortvarige ophold", + "Description": "Branchen omfatter kortvarig indkvartering, fx p\u00E5 vandrehjem, lejrskoler, g\u00E6stelejligheder og bungalows samt m\u00F8blerede hytter og sommerhuse. Reng\u00F8ring er typisk en service, der betales ekstra for, eller som udf\u00F8res efter endt ophold. Branchen omfatter fx B\u0026B, sommerhuse og selvbetjeningshoteller uden daglig reng\u00F8ring og sengeredning." + }, + { + "Code": "553000", + "Title": "Drift af campingpladser", + "Description": "Branchen omfatter udbud af kortvarige overnatningsfaciliteter, fx campingpladser, turistpladser, fiske- og jagtpladser samt udbud af plads og faciliteter til fritidsk\u00F8ret\u00F8jer." + }, + { + "Code": "554000", + "Title": "Formidlingsaktiviteter inden for overnatningsfaciliteter", + "Description": "Branchen omfatter formidling af alle typer overnatningsfaciliteter ved at bringe kunder og tjenesteudbydere sammen mod et gebyr eller en provision. Formidlingen kan udf\u00F8res p\u00E5 digitale platforme eller via ikke-digitale kanaler (telefon, post mv.)." + }, + { + "Code": "559000", + "Title": "Andre overnatningsfaciliteter", + "Description": "Branchen omfatter udbud af indkvartering i enkeltv\u00E6relser, delte v\u00E6relser eller sovesale for fx studerende eller s\u00E6sonarbejdere, i l\u00E6ngere perioder, men mindre end et \u00E5r. Det kan v\u00E6re indkvartering i arbejderkollegier, studieboliger, jernbanevogne, logihuse og pensionater." + }, + { + "Code": "561110", + "Title": "Servering af mad i restauranter og caf\u00E9er", + "Description": "Branchen omfatter drift af restauranter og caf\u00E9er, hvor hovedv\u00E6gten ligger p\u00E5 servering af mad ved bordet. Branchen omfatter ogs\u00E5 restauranter i fx tog, p\u00E5 f\u00E6rger eller i hoteller, hvis restauranten drives af en selvst\u00E6ndig udbyder." + }, + { + "Code": "561190", + "Title": "Drift af \u00F8vrige spisesteder", + "Description": "Branchen omfatter drift af spisesteder, hvor hovedv\u00E6gten ligger p\u00E5 takeaway med meget begr\u00E6nset servering ved borde. Branchen omfatter ogs\u00E5 restauranter med takeaway i supermarkeder, hvis restauranten drives af en selvst\u00E6ndig udbyder.Fremstilling af sm\u00F8rrebr\u00F8d, der produceres til videresalg og ikke til umiddelbar fort\u00E6ring, henvises til 10.89.00." + }, + { + "Code": "561200", + "Title": "Drift af mobile madboder", + "Description": "Branchen omfatter drift af mobile madboder, hvor der prim\u00E6rt tilberedes og serveres f\u00F8devarer til umiddelbar indtagelse.Tilberedning og servering af mad fra mobile eller midlertidige boder p\u00E5 kontrakt med en kunde til en bestemt event henvises til 56.21.00 og mobil drikkevareservering henvises til 56.30.10 og 56.30.20." + }, + { + "Code": "562100", + "Title": "Event catering", + "Description": "Branchen omfatter cateringaktiviteter i forbindelse med enkeltbegivenheder, p\u00E5 kontraktlige aftaler med kunden, fx eventcatering, diner tranportable og kogekoner. Fremstilling af letford\u00E6rvelige f\u00F8devarer til videresalg henvises til 10.89.00." + }, + { + "Code": "562200", + "Title": "Catering p\u00E5 kontrakt og andre restaurationsaktiviteter", + "Description": "Branchen omfatter catering p\u00E5 kontrakt til kantiner, cafeterier eller transportselskaber, fx flyselskaber. Maden kan ogs\u00E5 tilberedes direkte p\u00E5 stedet hos kunden, fx i kantiner p\u00E5 virksomheder, skoler, hospitaler mv." + }, + { + "Code": "563010", + "Title": "Udsk\u00E6nkning af ikke-alkoholiske drikkevarer", + "Description": "Branchen omfatter servering af drikkevarer, evt. med lidt spiseligt, men hvor hovedv\u00E6gten er p\u00E5 servering af ikke-alkoholiske drikkevarer til umiddelbar indtagelse p\u00E5 stedet." + }, + { + "Code": "563020", + "Title": "Udsk\u00E6nkning af alkoholiske drikkevarer", + "Description": "Branchen omfatter servering af drikkevarer, evt. med lidt spiseligt, men hvor hovedv\u00E6gten er p\u00E5 servering af alkoholiske drikkevarer til umiddelbar indtagelse p\u00E5 stedet." + }, + { + "Code": "564000", + "Title": "Formidlingsaktiviteter i forbindelse med restaurationsaktiviteter", + "Description": "Branchen omfatter formidling af f\u00F8de- og drikkevaretjenester ved at bringe kunder og tjenesteudbydere sammen mod et gebyr eller en provision, uden at formidleren leverer de f\u00F8de- og drikkevaretjenester, der formidles. Denne formidling kan udf\u00F8res p\u00E5 digitale platforme eller via ikke-digitale kanaler (ansigt til ansigt, telefon, post mv.)." + }, + { + "Code": "581100", + "Title": "Udgivelse af b\u00F8ger", + "Description": "Branchen omfatter udgivelse af b\u00F8ger, brochurer, ordb\u00F8ger, encyklop\u00E6dier, atlasser, land- og s\u00F8kort og lydb\u00F8ger p\u00E5 tryk, digitalt, analogt eller anden form. Streaming af lydb\u00F8ger, der ikke har forbindelse med dens udgivelse, henvises til 60.10.00." + }, + { + "Code": "581200", + "Title": "Udgivelse af aviser og dagblade", + "Description": "Branchen omfatter udgivelse af aviser og dagblade p\u00E5 tryk, digitalt, analogt eller enhver anden form. Branchen omfatter ogs\u00E5 gratisaviser." + }, + { + "Code": "581300", + "Title": "Udgivelse af ugeblade og magasiner", + "Description": "Branchen omfatter udgivelse af tidsskrifter og andre magasiner, men ogs\u00E5 radio- og tv-tidsplaner p\u00E5 tryk, digitalt, analogt eller enhver anden form." + }, + { + "Code": "581900", + "Title": "Andre udgiveraktiviteter, undtagen udgivelse af software", + "Description": "Branchen omfatter udgivelse af kataloger, retspraksissamlinger, kompendier, lyk\u00F8nskningskort, plakater mv. samt reproduktioner af kunstv\u00E6rker, b\u00E5de p\u00E5 tryk og digitalt." + }, + { + "Code": "582100", + "Title": "Udgivelse af videospil", + "Description": "Branchen omfatter udgivelse af computerspil til alle platforme og k\u00F8b i appen af udgiveren til alle brugere, inklusiv abonnenter. Omfatter ogs\u00E5 formidlingsservice til udgivelse af videospilsoftware." + }, + { + "Code": "582900", + "Title": "Anden udgivelse af software", + "Description": "Branchen omfatter udgivelse af anden software, fx operativsystemer, cybersikkerhedssoftware, modelleringssoftware og formidlingsservice i forbindelse med softwareudgivelse og markedspladser herfor. Reproduktion af software henvises til 18.20.00." + }, + { + "Code": "591100", + "Title": "Produktion af film, videoer og TV-programmer", + "Description": "Branchen omfatter fx produktion af film, videoer, reklamefilm, animerede audiovisuelle v\u00E6rker og vlogs. Reproduktion af film til biografdistribution henvises til 59.12.00." + }, + { + "Code": "591200", + "Title": "Aktiviteter efter produktion af film, videoer og TV-programmer", + "Description": "Branchen omfatter efterproduktionsaktiviteter, fx overf\u00F8rsel til film/b\u00E5nd, redigering, undertekster, konvertering til videostreamingformater samt udvikling og bearbejdning af biograffilm, inkl. reproduktion af spillefilm med henblik p\u00E5 distribution til biografer." + }, + { + "Code": "591300", + "Title": "Distribution af film og videoer", + "Description": "Branchen omfatter distribution af film og audiovisuelle v\u00E6rker, fx film til biografer, tv-stationer og tv-netv\u00E6rk." + }, + { + "Code": "591400", + "Title": "Fremvisning af film og andre billedmedier", + "Description": "Branchen omfatter fremvisning af film i fx biografer eller andre fremvisningssteder." + }, + { + "Code": "592000", + "Title": "Indspilning af lydoptagelser og udgivelse af musik", + "Description": "Branchen omfatter produktion af originale lyd- og masteroptagelser, herunder erhvervelse og registrering af ophavsret til fx musikkompositioner. Omfatter ogs\u00E5 produktion af indspillede (dvs. ikke direkte) radioprogrammer mv. Reproduktion fra masterkopier af henvises til 18.20.00." + }, + { + "Code": "601000", + "Title": "Radioaktiviteter og distribution af lydoptagelser", + "Description": "Branchen omfatter radioaktiviteter og distribution af lydoptagelser, fx streaming, on-demand eller direkte udsendelse af podcast." + }, + { + "Code": "602000", + "Title": "Programskabelse, udgivelse og distribution af billedoptagelser", + "Description": "Branchen omfatter dannelse af et fuldst\u00E6ndigt programudbud til en tv-kanal ud fra egenproducerede eller indk\u00F8bte programmer." + }, + { + "Code": "603100", + "Title": "Nyhedsbureauers aktiviteter", + "Description": "Branchen omfatter nyhedsbureauers aktiviteter fx levering af nyheder, billeder og indslag til medier, udgivere og tv-selskaber." + }, + { + "Code": "603900", + "Title": "Anden distribution af medieindhold", + "Description": "Branchen omfatter distribution af medieinfhold, fx via websider med indholdsdeling, s\u00E5som wiki- og sociale medier, hvor der ikke er redaktionelt ansvar og kontrol, samt drift af online spil-/videospilsider (uden forbindelse til udgivelse). Udgivelse af videospil- og anden software henvises til 58.21.00 og 58.29.00." + }, + { + "Code": "611000", + "Title": "Levering af fastnetbaseret, tr\u00E5dl\u00F8s og satellitbaseret telekommunikation", + "Description": "Branchen omfatter transmission, drift, vedligeholdelse og udbud af telekommunikation." + }, + { + "Code": "612000", + "Title": "Videresalg af telekommunikation og formidlingsaktiviteter inden for telekommunikation", + "Description": "Branchen omfatter videresalg af fastnetbaseret, tr\u00E5dl\u00F8s og satellitbaseret telekommunikation." + }, + { + "Code": "619000", + "Title": "Andre telekommunikationsaktiviteter", + "Description": "Branchen omfatter levering af specialiserede telekommunikationsapplikationer, fx telemetri, notifikationsservices eller IP-telefoni." + }, + { + "Code": "621000", + "Title": "Computerprogrammering", + "Description": "Branchen omfatter programmering, test og vedligeholdelse af software og applikationer. Tilpasning af software, s\u00E5 den kan fungere inden for klientens informationssystemmilj\u00F8. Udgivelse af software eller spil, herunder af egen-udviklede programmer, henvises til 58.21.00 og 58.29.00." + }, + { + "Code": "622000", + "Title": "Konsulentbistand vedr\u00F8rende informationsteknologi og forvaltning af it-faciliteter", + "Description": "Branchen omfatter konsulentbistand samt analyser af brugerbehov- og problemer vedr\u00F8rende planl\u00E6gning og design af computersystemer, der integrerer hardware-, software og anden informationsteknologi. Branchen omfatter ogs\u00E5 installation, opl\u00E6ring og support til brugerne af systemet." + }, + { + "Code": "629000", + "Title": "Andre IT- og computerserviceaktiviteter", + "Description": "Branchen omfatter informationsteknologiske og computerbesl\u00E6gtede aktiviteter, fx gendannelse af computersystemer, installation af personlige computer eller tredjeparts software." + }, + { + "Code": "631000", + "Title": "Aktiviteter i forbindelse med it-infrastruktur, databehandling, hosting o.lign.", + "Description": "Branchen omfatter bl.a. levering af cloudinfrastruktur og platform (IaaS, PaaS mv.), udlejning af server- og networkingplads p\u00E5 datacentre og blockchain/distributed ledger-teknologi (DLT) databehandlingsaktiviteter. Branchen omfatter desuden behandling af data (leveret af kunder) og hostingaktiviteter (fx applikationshosting) mv." + }, + { + "Code": "639100", + "Title": "Drift af portaler til internettet", + "Description": "Branchen omfatter drift af internetsider, der anvender en s\u00F8gemaskine til at skabe og vedligeholde store databaser med internetadresser, herunder drift af sammenligningssider." + }, + { + "Code": "639200", + "Title": "Andre informationsaktiviteter", + "Description": "Branchen omfatter informationstjenester p\u00E5 honorar- eller kontraktbasis fx informationss\u00F8getjenester (fx ved web-harvesting), udklipsservice, kompilering af information eller adresselister mv." + }, + { + "Code": "641100", + "Title": "Centralbankers aktiviteter", + "Description": "Branchen omfatter aktiviteter i forbindelse med udstedelse af penge, opretholdelse af den indenlandske og udenlandske v\u00E6rdi af den nationale valuta, samt at opbevare landets internationale reserver." + }, + { + "Code": "641900", + "Title": "Andre pengeinstitutters aktiviteter", + "Description": "Branchen omfatter pengeinstitutter, der modtager indl\u00E5n og yder kredit eller udl\u00E5n af kapital. Ydelsen af kredit kan fx v\u00E6re l\u00E5n, realkredit eller kreditkort. Aktiviteten kr\u00E6ver tilladelse som pengeinstitut jf. Lov om Finansiel Virksomhed." + }, + { + "Code": "642110", + "Title": "Finansielle holdingselskaber", + "Description": "Branchen omfatter selskaber, hvis hovedaktivitet er at eje kontrollerende andele i andre finansielle selskaber (dvs. selskaber med branchekoder, der starter med 64, 65 eller 66)." + }, + { + "Code": "642120", + "Title": "Ikke-finansielle holdingselskaber", + "Description": "Branchen omfatter selskaber, hvis hovedaktivitet er at eje kontrollerende andele i andre ikke-finansielle selskaber (dvs. selskaber med branchekoder, der ikke starter med 64, 65 eller 66)." + }, + { + "Code": "642130", + "Title": "Genneml\u00F8bsholdingselskaber", + "Description": "Branchen omfatter udenlandsk kontrollerede selskaber, hvis hovedaktivitet er at eje kontrollerende andele i andre udenlandske selskaber, herunder at foretage udl\u00E5n til udenlandske koncernselskaber." + }, + { + "Code": "642200", + "Title": "Finansielle conduiters aktiviteter", + "Description": "Branchen omfatter finansielle conduiters aktiviteter, herunder at skaffe eller l\u00E5ne midler, normalt ved at udstede obligationer p\u00E5 det \u00E5bne marked, og sende disse midler til moderselskabet eller anden enhed i koncernen." + }, + { + "Code": "643110", + "Title": "Pengemarkedsfondes aktiviteter", + "Description": "Branchen omfatter pengemarkedsforeningers aktiviteter, som omfatter udstedelse af investeringsbeviser eller -andele. Deltagernes midler investeres i s\u00E6rligt sikre finansielle aktiver med kort l\u00F8betid." + }, + { + "Code": "643120", + "Title": "Andre investeringsfondes aktiviteter", + "Description": "Branchen omfatter kollektive investeringsordningers aktiviteter, undtagen pengemarkedsforeninger, som omfatter udstedelse af investeringsbeviser eller -andele." + }, + { + "Code": "643200", + "Title": "Trusters aktiviteter", + "Description": "Branchen omfatter administration af klient-, ejendoms- og bureaukonti, p\u00E5 vegne af flere begunstigede i henhold til en forvaltningsaftale, et testamente eller en agenturaftale." + }, + { + "Code": "649100", + "Title": "Finansiel leasing", + "Description": "Branchen omfatter finansiel leasing, hvor lejeperioden omtrent d\u00E6kker aktivets levetid. Ved finansiel leasing er det lejer, som har alle risici ved at eje aktivet. Aktivet kan senere overdrages til udlejeren. Virksomheder, der besk\u00E6ftiger sig med operationel leasing, henvises til brancher, der starter med 77." + }, + { + "Code": "649210", + "Title": "Realkreditinstitutters aktiviteter", + "Description": "Branchen omfatter ydelse af l\u00E5n mod registreret pant i fast ejendom p\u00E5 grundlag af udstedelse af realkreditobligationer eller andre v\u00E6rdipapirer." + }, + { + "Code": "649220", + "Title": "Andre kreditinstitutters aktiviteter", + "Description": "Branchen omfatter ydelse af l\u00E5n for egen regning, som finansieres af midler fra offentligheden, undtagen indl\u00E5n, der skal betales tilbage." + }, + { + "Code": "649230", + "Title": "Andre kreditselskabers aktiviteter", + "Description": "Branchen omfatter aktiviteter i forbindelse med ydelse af kredit til forbrugere og ikke-finansielle virksomheder, men indl\u00E5n modtages ikke." + }, + { + "Code": "649910", + "Title": "Investering for egen regning", + "Description": "Branchen omfatter investering for egen regning, herunder pleje af egen formue, fx hvis tidligere \u00F8konomiske aktivitet er solgt fra." + }, + { + "Code": "649990", + "Title": "Anden finansiel formidling i.a.n.", + "Description": "Branchen omfatter finansielle tjenesteydelser, der prim\u00E6rt vedr\u00F8rer distribution af midler p\u00E5 andre m\u00E5der end l\u00E5ngivning. Branchen omfatter ogs\u00E5 handel p\u00E5 finansmarkeder mv. for egen regning." + }, + { + "Code": "651100", + "Title": "Livsforsikring", + "Description": "Branchen omfatter tegning af livsforsikrings-, indkomst- og forsikringspolicer ved d\u00F8d." + }, + { + "Code": "651200", + "Title": "Anden forsikring", + "Description": "Branchen omfatter forsikring af enhver art, der ikke er livsforsikring." + }, + { + "Code": "652000", + "Title": "Genforsikring", + "Description": "Branchen omfatter overtagelse af hele eller del af risikoen forbundet med forsikringspolicer, som er tegnet af andre forsikringsselskaber." + }, + { + "Code": "653010", + "Title": "Pensionskassers aktiviteter", + "Description": "Branchen omfatter pensionskassers aktiviteter, fx foreninger eller sammenslutninger, hvis form\u00E5l er at udbetale pension efter ensartede regler til medlemmer, som er uddannet inden for bestemte uddannelsesomr\u00E5der eller er ansat i bestemte virksomheder." + }, + { + "Code": "653020", + "Title": "Anden pensionsforsikring", + "Description": "Branchen omfatter firmapensionskasser, som udbetaler pension p\u00E5 normale forsikringsvilk\u00E5r." + }, + { + "Code": "661100", + "Title": "Forvaltning af kapitalmarkeder", + "Description": "Branchen omfatter tjenesteydelser t\u00E6t forbundet til kapitalmarkeder. Det kan v\u00E6re fysiske eller elektroniske markedspladser med henblik p\u00E5 at lette k\u00F8b og salg af forskellige former for v\u00E6rdipapirer, fx vare- eller v\u00E6rdipapirb\u00F8rser." + }, + { + "Code": "661200", + "Title": "V\u00E6rdipapir- og varem\u00E6gling", + "Description": "Branchen omfatter tjenesteydelser prim\u00E6rt m\u00E6glere t\u00E6t forbundet til handel med aktier, obligationer og varer for andre, fx fondsb\u00F8rsm\u00E6glere, vareb\u00F8rsm\u00E6glere og valutahandlere." + }, + { + "Code": "661900", + "Title": "Andre aktiviteter i forbindelse med finansielle tjenesteydelser, undtagen forsikring og pensionsforsikring", + "Description": "Branchen omfatter behandling af finansielle transaktioner fx kreditkorttransaktioner, endvidere investeringsr\u00E5dgivning og realkreditm\u00E6glere." + }, + { + "Code": "662100", + "Title": "Risiko- og skadesvurdering", + "Description": "Branchen omfatter opg\u00F8relse af erstatning og administration for tredjepart." + }, + { + "Code": "662200", + "Title": "Forsikringsagenters og forsikringsm\u00E6gleres aktiviteter", + "Description": "Branchen omfatter formidling af livrente-, forsikrings- og genforsikringspolicer." + }, + { + "Code": "662900", + "Title": "Aktiviteter i forbindelse med forsikring og pensionsforsikring i.a.n.", + "Description": "Branchen omfatter fx administration af bjergning, aktuaraktiviteter og lignende tjenester, der er t\u00E6t forbundet med forsikring." + }, + { + "Code": "663000", + "Title": "Formueforvaltning", + "Description": "Branchen omfatter forvaltning af andres formue, p\u00E5 kontrakt- eller honorarbasis. Forvaltning af egne midler henvises til 64.99.10 og 64.99.90." + }, + { + "Code": "681100", + "Title": "K\u00F8b og salg af egen fast ejendom", + "Description": "Branchen omfatter k\u00F8b og salg af fast ejendom, fx beboelsesejendomme, boliger, erhvervsbygninger og jord samt udstykning. Udstykning og modning af selvejet jord til senere salg henvises til 68.12.00." + }, + { + "Code": "681200", + "Title": "Gennemf\u00F8relse af byggeprojekter", + "Description": "Branchen omfatter udvikling af byggeprojekter, til egne bolig- og erhvervsbygninger, ved at samle finansielle, tekniske og fysiske midler. Omfatter ogs\u00E5 udstykning og modning af jord til senere salg. Opf\u00F8relse af bygninger henvises til 41.00.00." + }, + { + "Code": "682010", + "Title": "Udlejning af almennyttige boliger", + "Description": "Branchen omfatter udlejning af almennyttige boliger, fx af selvejende boligselskaber. Forretningsf\u00F8rerselskaber henvises til branche 68.32.10." + }, + { + "Code": "682020", + "Title": "Udlejning af private andelsboliger", + "Description": "Branchen omfatter udlejning af private andelsboliger. Udlejning af beskyttede boliger henvises til 87.30.20." + }, + { + "Code": "682030", + "Title": "Anden udlejning af boliger", + "Description": "Branchen omfatter udlejning af boliger inklusiv beboelsesejendomme, fx lejligheder der er m\u00F8blerede eller um\u00F8blerede p\u00E5 \u00E5rsbasis eller l\u00E6ngere samt drift af pladser til beboelsesvogne som prim\u00E6r bolig. Branchen omfatter ogs\u00E5 udlejning af tage til installation af solceller eller reklamer." + }, + { + "Code": "682040", + "Title": "Udlejning af erhvervsejendomme", + "Description": "Branchen omfatter udlejning af erhversejendomme, fx kontor- og industribygninger, kontorhoteller, self storage-faciliteter mv. Branchen omfatter ogs\u00E5 gennemf\u00F8relse af byggeprojekter med henblik p\u00E5 egen udlejning af erhvervsejendom." + }, + { + "Code": "683110", + "Title": "Ejendomsm\u00E6gleres aktiviteter", + "Description": "Branchen omfatter formidling af k\u00F8b og salg af fast ejendom. Juridiske aktiviteter henvises til 69.10.00." + }, + { + "Code": "683120", + "Title": "Boliganvisning", + "Description": "Branchen omfatter formidling af udlejning af boliger." + }, + { + "Code": "683210", + "Title": "Administration af fast ejendom p\u00E5 kontraktbasis", + "Description": "Branchen omfatter administration af fast ejendom, fx huslejeopkr\u00E6vning, forvaltning og ejendomsvurdering. Juridiske aktiviteter henvises til 69.10.00." + }, + { + "Code": "683220", + "Title": "Drift af ejerforeninger", + "Description": "Branchen omfatter drift af ejerforeninger, fx ejerlejligheds-, grundejer- og kolonihaveforeninger." + }, + { + "Code": "691000", + "Title": "Juridiske aktiviteter", + "Description": "Branchen omfatter juridiske sager, der ud\u00F8ves af advokater, herunder udf\u00E6rdigelse af sk\u00F8der, testamenter, notarer, fogeder og r\u00E5dgivning. Juridiske m\u00E6glingsaktiviteter og beskikkede v\u00E6rger er ogs\u00E5 placeret her. Domstolenes aktiviteter henvises til 84.23.00." + }, + { + "Code": "692000", + "Title": "Bogf\u00F8ring og revision; skatter\u00E5dgivning", + "Description": "Branchen omfatter bogf\u00F8ringsopgaver, udarbejdelse og revision af regnskaber, selvangivelser samt repr\u00E6sentation over for skattemyndigheder." + }, + { + "Code": "701010", + "Title": "Ikke-finansielle hoveds\u00E6ders aktiviteter", + "Description": "Branchen omfatter operationel kontrol eller styring, fx af ikke-finansielle koncernenheders daglige drift." + }, + { + "Code": "701020", + "Title": "Finansielle hoveds\u00E6ders aktiviteter", + "Description": "Branchen omfatter operationel kontrol eller styring, fx af finansielle koncernenheders daglige drift." + }, + { + "Code": "702000", + "Title": "Virksomhedsr\u00E5dgivning og anden ledelsesr\u00E5dgivning", + "Description": "Branchen omfatter virksomhedsr\u00E5dgivning og vejledning om bl.a. strategi, planl\u00E6gning og udvikling." + }, + { + "Code": "711100", + "Title": "Arkitekters aktiviteter", + "Description": "Branchen omfatter arkitektaktiviteter, fx bygningstegning, projekteringsarbejde og byplanl\u00E6gning." + }, + { + "Code": "711210", + "Title": "R\u00E5dgivende ingeni\u00F8raktiviteter inden for byggeri og anl\u00E6gsarbejder", + "Description": "Branchen omfatter r\u00E5dgivende ingeni\u00F8raktiviteter inden for byggeri og anl\u00E6gsarbejde, fx gennemarbejdning af og tilsyn med byggeprojekter, byggepladsingeni\u00F8rarbejde og teknisk r\u00E5dgivning samt udformning vedr\u00F8rende naturbaseret infrastruktur." + }, + { + "Code": "711220", + "Title": "R\u00E5dgivende ingeni\u00F8raktiviteter inden for produktions- og maskinteknik", + "Description": "Branchen omfatter r\u00E5dgivning inden for produktions- og maskinteknik, fx maskinteknik og teknisk r\u00E5dgivning samt projektgennemgang og tilsyn med projekter." + }, + { + "Code": "711230", + "Title": "R\u00E5dgivende ingeni\u00F8raktiviteter inden for f\u00E6rdige fabriksanl\u00E6g", + "Description": "Branchen omfatter r\u00E5dgivning ifm. levering og opstilling af f\u00E6rdige fabriksanl\u00E6g, uden opf\u00F8relse af bygninger, der henvises til 41.00.00." + }, + { + "Code": "711240", + "Title": "Geologiske unders\u00F8gelser og prospektering, landinspekt\u00F8rer mv.", + "Description": "Branchen omfatter r\u00E5dgivning og unders\u00F8gelser p\u00E5 jorden, under jorden og i vand, fx landm\u00E5lings- og landinspektionsaktiviteter og teknisk udformning samt r\u00E5dgivning vedr\u00F8rende geofysiske, geologiske og seismiske unders\u00F8gelser." + }, + { + "Code": "711290", + "Title": "Anden teknisk r\u00E5dgivning", + "Description": "Branchen omfatter individuel r\u00E5dgivning inden for sundhed og sikkerhed, cirkul\u00E6r \u00F8konomi og milj\u00F8tekniske aktiviteter, fx energi- og varmekonsulentaktiviteter." + }, + { + "Code": "712010", + "Title": "Kontrol af levnedsmidler", + "Description": "Branchen omfatter kontrol og unders\u00F8gelser i forbindelse med levnedsmidler, fx dyrl\u00E6gekontrol inden for f\u00F8devareproduktion." + }, + { + "Code": "712020", + "Title": "Teknisk afpr\u00F8vning og kontrol", + "Description": "Branchen omfatter teknisk afpr\u00F8vning og kontrol, fx fysisk, kemisk og anden analytisk afpr\u00F8vning, typegodkendelse og drift af politilaboratorier." + }, + { + "Code": "712090", + "Title": "Anden m\u00E5ling og teknisk analyse", + "Description": "Branchen omfatter m\u00E5ling og teknisk analyse vedr\u00F8rende bygningsberegninger og milj\u00F8teknik, fx m\u00E5ling af milj\u00F8indikatorer." + }, + { + "Code": "721000", + "Title": "Forskning og eksperimentel udvikling inden for naturvidenskab og teknik", + "Description": "Branchen omfatter forskning og eksperimentel udvikling inden for naturvidenskab og teknik, herunder grundforskning og anvendt forskning." + }, + { + "Code": "722000", + "Title": "Forskning og eksperimentel udvikling inden for samfundsvidenskab og humanistiske videnskaber", + "Description": "Branchen omfatter forskning og eksperimentel udvikling indenfor samfundsvidenskab og humanistiske videnskaber, herunder grundforskning og anvendt forskning." + }, + { + "Code": "731110", + "Title": "Planl\u00E6gning og design af reklamekampagner", + "Description": "Branchen omfatter reklamebureauers aktiviteter og handlinger, fx planl\u00E6gning af reklamekampagner og markedsf\u00F8ring." + }, + { + "Code": "731190", + "Title": "Andre reklameaktiviteter", + "Description": "Branchen omfatter synligg\u00F8relse af reklamer med form\u00E5l at fremme salg, fx ops\u00E6tning af udend\u00F8rs reklamer og vinduesudstillinger." + }, + { + "Code": "731200", + "Title": "Indrykning af reklamer i medier", + "Description": "Branchen omfatter salg eller gensalg af tid og plads i diverse medier, der tilbyder reklameplads, p\u00E5 kontrakt- eller honorarbasis. Branchen omfatter ikke et medies salg af egen reklameplads eller -tid." + }, + { + "Code": "732000", + "Title": "Markedsanalyse og offentlig meningsm\u00E5ling", + "Description": "Branchen omfatter gennemf\u00F8rsel af markedsanalyse og offentlige meningsm\u00E5linger." + }, + { + "Code": "733000", + "Title": "Public relations og kommunikation", + "Description": "Branchen omfatter levering af r\u00E5dgivning, vejledning og operationel bistand om public relations og kommunikation, inklusiv lobby-arbejde, til virksomheder, organisationer mv." + }, + { + "Code": "741100", + "Title": "Industrielt design og modedesign", + "Description": "Branchen omfatter industrielt design, eventuelt ved hj\u00E6lp af specialiseret software samt modedesign, fx sko, tekstiler og m\u00F8bler." + }, + { + "Code": "741200", + "Title": "Grafisk design og visuel kommunikation", + "Description": "Branchen omfatter design og visuel kommunikation, fx grafiske designeres aktiviteter og kommunikationsdesigneres aktiviteter." + }, + { + "Code": "741300", + "Title": "Indretningsaktiviteter", + "Description": "Branchen omfatter r\u00E5dgivning af indretningsarkitekter og rumdesignere om samt specifikation af indretningsarbejder i private hjem, virksomheder og institutioner." + }, + { + "Code": "741400", + "Title": "Andet specialiseret designarbejde", + "Description": "Branchen omfatter specialiseret designarbejde, som ikke er klassificeret andre steder." + }, + { + "Code": "742000", + "Title": "Fotografiske aktiviteter", + "Description": "Branchen omfatter alle former for fotografering samt fremkaldelse og bearbejdning af billeder." + }, + { + "Code": "743000", + "Title": "Overs\u00E6ttelse og tolkning", + "Description": "Branchen omfatter b\u00E5de mundtlig og skriftlig overs\u00E6ttelse og tolkning." + }, + { + "Code": "749100", + "Title": "Patentbureauers aktiviteter og tjenesteydelser i forbindelse med markedsf\u00F8ring", + "Description": "Branchen omfatter forvaltning af ophavsrettigheder, industrielle ejendomsrettigheder (patenter, licenser, varem\u00E6rker, franchises mv.) og intellektuelle ejendomsrettigheder samt handel med disse." + }, + { + "Code": "749910", + "Title": "Landbrugskonsulenters aktiviteter", + "Description": "Branchen omfatter r\u00E5dgivning vedr\u00F8rende landbrugsdrift og aktiviteter i kontrol- og avlsforeninger." + }, + { + "Code": "749990", + "Title": "Andre liberale, videnskabelige og tekniske tjenesteydelser i.a.n.", + "Description": "Branchen omfatter liberale, videnskabelige og tekniske tjenesteydelser, fx milj\u00F8konsulent-, erhvervsagentaktiviteter og tjenester vedr. byggeomkostninger." + }, + { + "Code": "750000", + "Title": "Dyrl\u00E6gers aktiviteter", + "Description": "Branchen omfatter sundhedspleje for husdyr og k\u00E6ledyr, og ambulancetransport af dyr. Tandpleje for dyr er ogs\u00E5 omfattet." + }, + { + "Code": "771100", + "Title": "Udlejning og leasing af biler og lette motork\u00F8ret\u00F8jer", + "Description": "Branchen omfatter udlejning og leasing af k\u00F8ret\u00F8jer (p\u00E5 h\u00F8jst 3,5 ton) uden f\u00F8rer. Udlejning eller leasing med f\u00F8rer henvises til 49.33.00." + }, + { + "Code": "771200", + "Title": "Udlejning og leasing af lastbiler", + "Description": "Branchen omfatter udlejning og leasing af k\u00F8ret\u00F8jer over 3,5 ton. Udlejning og leasing af k\u00F8ret\u00F8jer med f\u00F8rer henvises til 49.41.00 eller 49.42.00." + }, + { + "Code": "772100", + "Title": "Udlejning og leasing af varer til fritid og sport", + "Description": "Branchen omfatter prim\u00E6rt korttidsudlejning af varer til fritid og sport, fx cykler, heste, sejlb\u00E5de og lystb\u00E5de uden mandskab mv. Udlejning af lystb\u00E5de og sejlb\u00E5de med mandskab henvises til 50.10.00 og 50.30.00." + }, + { + "Code": "772200", + "Title": "Udlejning og leasing af andre varer til personlig brug og husholdningsbrug", + "Description": "Branchen omfatter udlejning af alle typer af varer til husholdningsbrug og personlig brug til husholdninger eller virksomheder, fx b\u00F8ger, bekl\u00E6dning, m\u00F8bler, smykker, maskineri, elektronisk udstyr mv." + }, + { + "Code": "773100", + "Title": "Udlejning og leasing af landbrugsmaskiner og -udstyr", + "Description": "Branchen omfatter udlejning og leasing af landbrugs- og skovbrugsmaskiner og -udstyr. Udlejning med f\u00F8rer henvises til 01.61.00 eller 02.40.00." + }, + { + "Code": "773200", + "Title": "Udlejning og leasing af entrepren\u00F8rmateriel", + "Description": "Branchen omfatter udlejning og leasing af entrepren\u00F8rmateriel og -udstyr uden betjeningspersonale, fx stilladser og kranvogne. Udlejning af entrepren\u00F8rmateriale med f\u00F8rer henvises til hovedgruppe 43." + }, + { + "Code": "773300", + "Title": "Udlejning og leasing af kontormaskiner og -udstyr og computere", + "Description": "Branchen omfatter udlejning og leasing af kontormaskiner og -udstyr, fx computere, kopimaskiner, kasseapparater og kontorm\u00F8bler." + }, + { + "Code": "773400", + "Title": "Udlejning og leasing af skibe og b\u00E5de", + "Description": "Branchen omfatter udlejning og leasing af skibe og b\u00E5de uden f\u00F8rer. Udlejning af skibe og b\u00E5de med f\u00F8rer henvises til hovedgruppe 50." + }, + { + "Code": "773500", + "Title": "Udlejning og leasing af luftfart\u00F8jer", + "Description": "Branchen omfatter udlejning og leasing af luftfart\u00F8jer f\u00F8rer. Udlejning af luftfart\u00F8jer med f\u00F8rer henvises til hovedgruppe 51." + }, + { + "Code": "773910", + "Title": "Udlejning og leasing af andet materiel, udstyr og andre materielle aktiver til events", + "Description": "Branchen omfatter udlejning og operationel leasing af materiel og udstyr, fx professionelt lys- og lydudstyr, uden operat\u00F8rer, til arrang\u00F8rer af fx sportsarrangementer, koncerter, konferencer og messer." + }, + { + "Code": "773990", + "Title": "Udlejning og leasing af andet materiel, udstyr og andre materielle aktiver, bortset fra til events", + "Description": "Branchen omfatter udlejning og leasing af andet materiel og udstyr (uden operat\u00F8rer). Udlejning og leasing af andet materiel og udstyr (uden operat\u00F8rer) til arrang\u00F8rer af events henvises til 77.39.10." + }, + { + "Code": "774000", + "Title": "Leasing af intellektuelle ejendomsrettigheder og lignende produkter, dog ikke ophavsretsbeskyttede v\u00E6rker", + "Description": "Branchen omfatter leasing af intellektuelle ejendomsrettigheder og lignende produkter, fx patenterede enheder, brands og franchiseaftaler. Branchen omfatter ogs\u00E5 modtagelse af royalties eller licensafgifter. Anskaffelse af rettigheder og publicering henvises til hovedgruppe 58 og 59." + }, + { + "Code": "775100", + "Title": "Formidlingsaktiviteter inden for udlejning og leasing af biler, autocampere og p\u00E5h\u00E6ngsvogne", + "Description": "Branchen omfatter formidling af udlejning og leasing af biler, autocampere og p\u00E5h\u00E6ngsvogne." + }, + { + "Code": "775200", + "Title": "Formidlingsaktiviteter inden for udlejning og leasing af andre materielle aktiver og andre ikke-finansielle immaterielle aktiver", + "Description": "Branchen omfatter formidling mellem husholdninger, som vil udleje eller leje materielle aktiver, fx pl\u00E6neklippere, stiger og cykler." + }, + { + "Code": "781000", + "Title": "Arbejdsformidlingskontorers aktiviteter", + "Description": "Branchen omfatter alle typer af arbejdsformidling, fx rekruttering, casting og internetbaseret arbejdsformidling." + }, + { + "Code": "782000", + "Title": "Vikarbureauers aktiviteter og anden personaleformidling", + "Description": "Branchen omfatter formidling af vikarer, der midlertidigt supplerer eller erstatter kundens arbejdsstyrke. Vikarbureaut er arbejdsgiver for de p\u00E5g\u00E6ldende arbejdstagere." + }, + { + "Code": "791100", + "Title": "Rejsebureauers aktiviteter", + "Description": "Branchen omfatter bureauer, der hovedsagligt s\u00E6lger pakkerejser til private og erhvervskunder. Branchen omfatter ogs\u00E5 formidling af pakkerejsetilbud p\u00E5 destinationen." + }, + { + "Code": "791200", + "Title": "Rejsearrang\u00F8rers aktiviteter", + "Description": "Branchen omfatter arrangering og tilrettel\u00E6ggelse af pakkerejser eller ydelser i denne, der s\u00E6lges igennem rejsebureauer eller direkte af rejsearrang\u00F8rer.Pakkerejser inkluderer normalt passager- og bagagetransport, indkvartering, mad og sightseeingtjenester. Rejsearrang\u00F8rer besk\u00E6ftiger sig med driften af ??rejsepakker, der s\u00E6lges af rejsebureauer, herunder at arrangere og samling af forskellige tjenester i pakkerejsen.Rejsearrang\u00F8rer kan v\u00E6re ansat eller have indg\u00E5et kontrakt med et rejsebureau, eller de kan fungere som uafh\u00E6ngige rejsearrang\u00F8rer." + }, + { + "Code": "799000", + "Title": "Andre reservationstjenesteydelser og tjenesteydelser i forbindelse hermed", + "Description": "Branchen omfatter reservationstjenesteydelser og tjenesteydelser i forbindelse hj\u00E6lp og vejledning til bes\u00F8gende, fx levering af rejseinformation til bes\u00F8gende og turistguideaktiviteter." + }, + { + "Code": "800100", + "Title": "Efterforskning og private vagt- og sikkerhedsaktiviteter", + "Description": "Branchen omfatter private virksomheders udbud af vagt- og sikkerhedstjenester, fx detektivvirksomhed, vagt- og sikkerhedskontrol. Branchen omfatter bagagekontrol. Risikoanalyse, sikkerhedsr\u00E5dgivning og -konsulentaktiviteter henvises til 80.09.00." + }, + { + "Code": "800900", + "Title": "Vagt- og sikkerhedsaktiviteter i.a.n.", + "Description": "Branchen omfatter private virksomheders udbud af overv\u00E5gning og fjernoverv\u00E5gningstjenester, herunder installation og vedligholdelse af disse, hvis det er i forbindelse med senere overv\u00E5gning. L\u00E5sesmedeaktiviteter er ogs\u00E5 omfattet.Installation uden senere overv\u00E5gningsydelser henvises til 43.21.00." + }, + { + "Code": "811000", + "Title": "Levering af kombinerede hj\u00E6lpetjenester i forbindelse med drift af fast ejendom", + "Description": "Branchen omfatter levering af en kombination af driftsopgaver p\u00E5 en kundes ejendom, fx indvendig reng\u00F8ring, vedligeholdelse, bortskaffelse af affald, d\u00F8rm\u00E6nd, handyman, reception og vaskeri." + }, + { + "Code": "812100", + "Title": "Almindelig reng\u00F8ring i bygninger", + "Description": "Branchen omfatter almindelig reng\u00F8ring i bygninger af enhver art, fx kontorer, private boliger, fabrikker og institutioner." + }, + { + "Code": "812210", + "Title": "Vinduespolering", + "Description": "Branchen omfatter vinduespudsning og -polering." + }, + { + "Code": "812220", + "Title": "Skorstensfejning", + "Description": "Branchen omfatter skorstensfejning og rensning af pejse, ovne mv." + }, + { + "Code": "812290", + "Title": "Anden reng\u00F8ring af bygninger og reng\u00F8ring af erhvervslokaler i.a.n.", + "Description": "Branchen omfatter specialiseret reng\u00F8ring af bygninger og industrimaskiner, fx udvendig reng\u00F8ring og reng\u00F8ring af maskiner i f\u00F8devareindustrien." + }, + { + "Code": "812300", + "Title": "Anden reng\u00F8ring", + "Description": "Branchen omfatter anden reng\u00F8ring, ikke relateret til bygninger og inventar, fx reng\u00F8ring af sv\u00F8mmebassiner, transportmidler, gadefejning og flaskerensning." + }, + { + "Code": "813000", + "Title": "Landskabspleje", + "Description": "Branchen omfatter landskabspleje, fx plantning og pleje af parker og haver, beskyttelse og gendannelse af landskab og milj\u00F8teknisk anl\u00E6gsarbejder. Branchen omfatter ogs\u00E5 naturgenopretning og milj\u00F8forvaltning, fx beskyttelses- og vedligeholdelsesforanstaltninger for klitter og vadeomr\u00E5der." + }, + { + "Code": "821000", + "Title": "Administrations- og kontorserviceaktiviteter", + "Description": "Branchen omfatter en kombination af daglige administrative kontorfunktioner, fx reception, \u00F8konomiplanl\u00E6gning, fakturering og bogf\u00F8ring, personale og posttjenester for andre, p\u00E5 kontrakt- eller honorarbasis." + }, + { + "Code": "822000", + "Title": "Drift af callcentre", + "Description": "Branchen omfatter drift af callcentre for ind- og/eller udg\u00E5ende opkald samt webkontaktcentre. Branchen omfatter ogs\u00E5 h\u00E5ndtering af kundeklager eller henvendelser via andre kommunikationskanaler." + }, + { + "Code": "823000", + "Title": "Organisering af kongresser, messer og udstillinger", + "Description": "Branchen omfatter organisering af kongresser, messer og udstillinger samt personaleh\u00E5ndtering og bemanding af faciliteterne p\u00E5 stedet, hvis det sker i forbindelse med organisering, promovering og styring af disse events." + }, + { + "Code": "824000", + "Title": "Formidlingsaktiviteter inden for forretningsservice i.a.n.", + "Description": "Branchen omfatter formidlingsaktiviteter inden for forretningsservice i.a.n., ved at bringe kunder og serviceudbydere sammen for et honorar eller provision, fx reservationsservices for billetter til kulturelle events inden for fx sport, teater og anden underholdning." + }, + { + "Code": "829100", + "Title": "Inkassoaktiviteter og kreditoplysning", + "Description": "Branchen omfatter opkr\u00E6vning af betalinger samt indhentning af oplysninger om enkeltpersoner eller virksomheders kreditv\u00E6rdighed til andre virksomheder." + }, + { + "Code": "829200", + "Title": "Pakkeriaktiviteter", + "Description": "Branchen omfatter pakning uanset type eller metode p\u00E5 honorar eller kontraktbasis." + }, + { + "Code": "829900", + "Title": "Andre forretningsserviceaktiviteter i.a.n.", + "Description": "Branchen omfatter forretningsservices, der ikke er n\u00E6vnt andetsteds i hovedgruppe 82, herunder h\u00E5ndtering af visum, arbejdstilladelser, fundraising, crowdfunding, stregkodning mv." + }, + { + "Code": "841100", + "Title": "Generelle offentlige forvaltningsaktiviteter", + "Description": "Branchen omfatter generel offentlig administration af ministerier, styrelser, regioner og kommuner, fx administration af love, bekendtg\u00F8relser, skatteordninger, told mv." + }, + { + "Code": "841200", + "Title": "Administration af sundhedsv\u00E6sen, undervisning, kultur og sociale forhold", + "Description": "Branchen omfatter offentlig administration af sundhedsv\u00E6sen, undervisning, kultur og sociale forhold." + }, + { + "Code": "841300", + "Title": "Administration af og bidrag til erhvervsfremme", + "Description": "Branchen omfatter administration af aktiviteter og bidrag til erhvervsfremme, herunder regulering og tildeling af st\u00F8tte til forskellige \u00F8konomiske sektorer." + }, + { + "Code": "842100", + "Title": "Udenrigsanliggender", + "Description": "Branchen omfatter alle typer af anliggender, som staten formidler ud over de nationale gr\u00E6nser, uanset om det er bistand, kultur, milit\u00E6r eller diplomati." + }, + { + "Code": "842200", + "Title": "Forsvarets aktiviteter", + "Description": "Branchen omfatter administration, tilsyn og aktiviteter relateret til milit\u00E6re anliggender og h\u00E6r, fl\u00E5de, flyvev\u00E5ben og rumforsvarsstyrker, bortset fra undervisning p\u00E5 milit\u00E6rets skoler." + }, + { + "Code": "842300", + "Title": "Rets- og f\u00E6ngselsv\u00E6senets aktiviteter", + "Description": "Branchen omfatter administration og drift af forvaltnings-, civile og strafferetsdomstole, milit\u00E6rdomstole og retsplejesystemet. Branchen omfatter ogs\u00E5 kriminalforsorgen, herunder f\u00E6ngsler og arresthuse." + }, + { + "Code": "842400", + "Title": "Aktiviteter i forbindelse med offentlig sikkerhed og orden", + "Description": "Branchen omfatter administration og drift af politi, fx havnepoliti, gr\u00E6nsepoliti, kystvagt mv." + }, + { + "Code": "842500", + "Title": "Brandv\u00E6senets aktiviteter", + "Description": "Branchen omfatter brandbek\u00E6mpelse og brandforebyggende foranstaltninger udf\u00F8rt af de regul\u00E6re brandkorps og hj\u00E6lpekorps." + }, + { + "Code": "843000", + "Title": "Aktiviteter inden for lovpligtig socialsikring", + "Description": "Branchen omfatter finansiering og administration af statslige ordninger til social sikring." + }, + { + "Code": "851000", + "Title": "F\u00F8rskoleundervisning", + "Description": "Branchen omfatter de tidlige stadier af organiseret undervisning og er indbygget i 0. klasse." + }, + { + "Code": "852010", + "Title": "Undervisning p\u00E5 almene grundskoler", + "Description": "Branchen omfatter undervisning (0-10. klasse) p\u00E5 almene grundskoler, fx folkeskoler, privatskoler og friskoler. Branchen omfatter ogs\u00E5 skoler med afdelinger p\u00E5 forskellige adresser." + }, + { + "Code": "852020", + "Title": "Undervisning p\u00E5 specialskoler for b\u00F8rn med funktionsneds\u00E6ttelser", + "Description": "Branchen omfatter undervisning p\u00E5 specialskoler for b\u00F8rn, unge og voksne med fysiske eller psykiske funktionsneds\u00E6ttelser." + }, + { + "Code": "853110", + "Title": "Undervisning p\u00E5 ungdoms- og efterskoler", + "Description": "Branchen omfatter undervisning p\u00E5 ungdoms- og efterskoler, herunder s\u00E6rligt tilrettelagt undervisning og skoler, der starter ved 7. skole\u00E5r eller senere." + }, + { + "Code": "853120", + "Title": "Undervisning p\u00E5 gymnasier, studenter- og HF-kurser", + "Description": "Branchen omfatter undervisning, der giver adgang til videreg\u00E5ende uddannelser, fx gymnasier og HF-kurser." + }, + { + "Code": "853200", + "Title": "Undervisning p\u00E5 erhvervsfaglige skoler", + "Description": "Branchen omfatter undervisning p\u00E5 b\u00E5de adgangsgivende og praktiske uddannelser. Branchen omfatter bl.a. erhvervsgymnasier, husholdnings- og s\u00F8fartsskoler." + }, + { + "Code": "853300", + "Title": "Videreg\u00E5ende uddannelse, ikke p\u00E5 universitetsniveau", + "Description": "Branchen omfatter undervisning p\u00E5 videreg\u00E5ende uddannelser, som ikke er p\u00E5 universitetsniveau." + }, + { + "Code": "854000", + "Title": "Videreg\u00E5ende uddannelse p\u00E5 universitetsniveau", + "Description": "Branchen omfatter undervisning p\u00E5 videreg\u00E5ende uddannelser p\u00E5 universitetsniveau, fx bachelor- og kandidatuddannelser." + }, + { + "Code": "855100", + "Title": "Undervisning inden for sport og fritid", + "Description": "Branchen omfatter undervisning inden for sport og fritid, der er formelt tilrettelagt. Undervisningen kan foreg\u00E5 under mange forskellige rammer, fx p\u00E5 kundens tr\u00E6ningsfaciliteter, p\u00E5 uddannelsesinstitutioner eller andet, herunder p\u00E5 internettet. Undervisningen kan afsluttes med en eksamen, men denne er ikke kompetencegivende, dvs. ingen ECTS-point." + }, + { + "Code": "855200", + "Title": "Undervisning i kulturelle discipliner", + "Description": "Branchen omfatter undervisning i kulturelle discipliner som kunst, drama og musik, der er formelt tilrettelagt og hovedsaglig til hobby-, fritids- eller selvudviklingsform\u00E5l uden kompetencegivende eksamen, dvs. ingen ECTS-point. Undervisningen kan fx tilbydes p\u00E5 skoler, danseskoler, aftenskoler mv." + }, + { + "Code": "855300", + "Title": "Drift af k\u00F8reskoler", + "Description": "Branchen omfatter undervisning i at f\u00F8re bil, fly eller b\u00E5d til privat brug." + }, + { + "Code": "855900", + "Title": "Anden undervisning i.a.n.", + "Description": "Branchen omfatter anden undervisning, fx privatundervisning, undervisning der ikke kan niveau-bestemmes, computerkurser mv." + }, + { + "Code": "856100", + "Title": "Formidlingsaktiviteter i forbindelse med kurser og undervisere", + "Description": "Branchen omfatter formidlingsaktiviteter af services til kurser og undervisere ved at bringe kunder og udbydere sammen." + }, + { + "Code": "856900", + "Title": "Levering af hj\u00E6lpeydelser i forbindelse med undervisning i.a.n.", + "Description": "Branchen omfatter hj\u00E6lpeydelser i forbindelse med undervisning, fx uddannelsesr\u00E5dgivning, studievejledning og tilrettel\u00E6ggelse af studenterudvekslingsprogrammer." + }, + { + "Code": "861000", + "Title": "Hospitalsaktviteter", + "Description": "Branchen omfatter drift af hospitaler og klinikker med diagnosticering, kort eller langvarig l\u00E6ge- og medicinsk behandling samt sygepleje og andre sundhedsydelser. Branchen omfatter ogs\u00E5 psykiatriske hospitaler. Billeddiagnostiske unders\u00F8gelser og medicinske laboratorieaktiviteter, som ikke er del af hospitalsv\u00E6senet, henvises til 86.91.00." + }, + { + "Code": "862100", + "Title": "Alment praktiserende l\u00E6gers aktiviteter", + "Description": "Branchen omfatter konsultation og behandling udf\u00F8rt af alment praktiserende l\u00E6ger og vagtl\u00E6ger, hvad enten det foreg\u00E5r i individuel praksis, i l\u00E6gehuse eller patientens hjem. Der skelnes ikke mellem private og offentlige l\u00E6ger. L\u00E6geaktiviteter med andre specialer end almen medicin henvises til 86.22.00." + }, + { + "Code": "862200", + "Title": "Speciall\u00E6gers aktiviteter", + "Description": "Branchen omfatter speciall\u00E6gers aktiviteter, fx fertilitetsklinikker, kosmetisk kirurgi, str\u00E5lebehandling, vaccinationscentre og psykiatere. Psykoterapeuters aktiviteter henvises til 86.93.00." + }, + { + "Code": "862300", + "Title": "Tandl\u00E6gers aktiviteter", + "Description": "Branchen omfatter b\u00E5de almindelig og specialiseret tandl\u00E6gebehandling, herunder tandregulering og tandl\u00E6gearbejde p\u00E5 operationsstuer. Fremstilling af kunstige t\u00E6nder eller tandproteser henvises til 32.50.00." + }, + { + "Code": "869100", + "Title": "Billeddiagnostiske unders\u00F8gelser og medicinske laboratorieaktiviteter", + "Description": "Branchen omfatter billeddiagnostiske unders\u00F8gelser og medicinske laboratorieaktiviteter, samt laboratorieaktiviteter til dopingkontrol. Omfatter ikke l\u00E6gefaglig analyse og fortolkning af billeddiagnostisk materiale (r\u00F8ntgen, elektrokardiogrammer, endoskopier mv.), der henvises til 86.22.00." + }, + { + "Code": "869200", + "Title": "Patienttransport med ambulance", + "Description": "Branchen omfatter patienttransport med ambulance samt specialtransport af patienter med ledsagelse af paramedicinere." + }, + { + "Code": "869300", + "Title": "Psykologisk og psykoterapeutisk r\u00E5dgivning", + "Description": "Branchen omfatter konsultation og behandling udf\u00F8rt af psykologer, sundhedspsykologer og psykoterapeuter. Psykiateres aktiviteter henvises til 86.22.00." + }, + { + "Code": "869400", + "Title": "Sundhedspleje, hjemmesygepleje, jordemoderaktiviteter mv.", + "Description": "Branchen omfatter ydelser fra uafh\u00E6ngige sygeplejersker i egne konsultationslokaler eller i patienternes hjem - herunder ogs\u00E5 f\u00F8deklinikker uden permanent l\u00E6getilsyn. Hjemmepleje henvises til 88.10.10." + }, + { + "Code": "869500", + "Title": "Fysio- og ergoterapi", + "Description": "Branchen omfatter fysio- og ergoterapi udf\u00F8rt af l\u00E6gefaglige mass\u00F8rer samt besk\u00E6ftigelsesterapeutaktiviteter." + }, + { + "Code": "869600", + "Title": "Traditionelle, komplement\u00E6re og alternative behandlingsformer", + "Description": "Branchen omfatter traditionelle, komplement\u00E6re og alternative behandlingsformer, fx traditionel kinesisk urtemedicin, aromaterapi, osteopati, zoneterapi og hypnoterapi. Kropsbehandlingsteknikker som fx shiatsu, thaimassage og watsu henvises til 86.99.00." + }, + { + "Code": "869700", + "Title": "Formidlingsaktiviteter inden for l\u00E6gers og tandl\u00E6gers aktiviteter samt sundhedsv\u00E6sen i \u00F8vrigt", + "Description": "Branchen omfatter formidlingsaktiviteter inden for l\u00E6ge- og tandl\u00E6gearbejde og sundhedsv\u00E6sen i \u00F8vrigt. Formidlingsaktiviteter i forbindelse med institutionsophold henvises til 87.91.00." + }, + { + "Code": "869900", + "Title": "Drift af sundhedsv\u00E6sen i \u00F8vrigt i.a.n.", + "Description": "Branchen omfatter drift af sundhedsv\u00E6sen i \u00F8vrigt, fx optometri, taleterapi, fodpleje, di\u00E6tister, hudterapeuter og thaimassage. En r\u00E6kke forskellige \u0022\u0022banker\u0022\u0022, blodbanker, banker for transplantationsorganer, v\u00E6vsbanker mfl. samt sundhedsrelateret overv\u00E5gning. L\u00E6gefaglige mass\u00F8raktiviteter henvises til 86.95.00." + }, + { + "Code": "871010", + "Title": "Drift af plejehjem", + "Description": "Branchen omfatter drift af plejehjem for \u00E6ldre med sygepleje." + }, + { + "Code": "871020", + "Title": "Institutionsophold med sygepleje i.a.n.", + "Description": "Branchen omfatter bl.a. rekreationshjem, som ikke er psykiatriske hospitaler eller misbrugsafv\u00E6nningsklinikker, hvilehjem med sygepleje, hospicer - herunder for hospitalspatienter til palliativ behandling. Palliativ behandling og pleje for ambulante patienter henvises til 86.94.00." + }, + { + "Code": "872010", + "Title": "Drift af d\u00F8gninstitutioner for personer med psykiske handicap", + "Description": "Branchen omfatter bl.a. rekreationshjem for psykisk syge, bof\u00E6llesskaber for personer med f\u00F8lelsesm\u00E6ssige problemer og plejeboliger for personer med diagnosticeret psykisk funktionsneds\u00E6ttelse." + }, + { + "Code": "872020", + "Title": "Drift af behandlingshjem for stofmisbrugere og alkoholskadede", + "Description": "Branchen omfatter behandlingssteder, fx for behandling af alkohol- eller stofmisbrug." + }, + { + "Code": "873010", + "Title": "Drift af d\u00F8gninstitutioner for personer med fysisk handicap", + "Description": "Branchen omfatter drift af d\u00F8gninstitutioner for personer med fysiske handicap, som ikke er i stand til at tage fuldt vare p\u00E5 dem selv og/eller som ikke \u00F8nsker at bo alene." + }, + { + "Code": "873020", + "Title": "Drift af beskyttede boliger o. lign.", + "Description": "Branchen omfatter drift af beskyttede boliger, fx plejeboliger, seniorbof\u00E6llesskaber med pleje, plejehjem for \u00E6ldre med minimalt behov for sygepleje samt hvilehjem uden sygepleje. Institutionsophold med sygepleje for \u00E6ldre henvises til gruppe 87.10.10." + }, + { + "Code": "879100", + "Title": "Formidlingsaktiviteter i forbindelse med institutionsophold", + "Description": "Branchen omfatter formidlingsaktiviteter inden for institutionsophold." + }, + { + "Code": "879910", + "Title": "Drift af d\u00F8gninstitutioner for b\u00F8rn og unge", + "Description": "Branchen omfatter drift af bl.a. sp\u00E6db\u00F8rnshjem, b\u00F8rnehjem, skolehjem, ungdomshjem og - pensioner samt svangre- og m\u00F8drehjem. Pasningsordninger for b\u00F8rn henvises til gruppe 88.91." + }, + { + "Code": "879920", + "Title": "Familiepleje", + "Description": "Branchen omfatter d\u00F8gnpleje af b\u00F8rn og unge eller personer med vidtg\u00E5ende fysiske eller psykiske handicap anbragt i private hjem i henhold til kontakt med offentlige myndigheder. Hjemmepleje for personer med psykiske funktionsneds\u00E6ttelser henvises til 87.20.10." + }, + { + "Code": "879930", + "Title": "Drift af flygtninge- og asylcentre", + "Description": "Branchen omfatter indkvartering af katastrofeofre, flygtninge og indvandrere, herunder midlertidigt eller l\u00E6ngerevarende ophold." + }, + { + "Code": "879990", + "Title": "Drift af andre former for institutionsophold", + "Description": "Branchen omfatter drift af forsorgshjem, optagelseshjem, beskyttede pensionater, herberger for hjeml\u00F8se, krisecentre o.lign. Institutionsophold med sygepleje henvises til 87.10.20." + }, + { + "Code": "881010", + "Title": "Drift af hjemmehj\u00E6lp", + "Description": "Branchen omfatter drift af hjemmehj\u00E6lp, fx praktisk bistand i hjemmet til \u00E6ldre, handicappede eller syge, herunder ogs\u00E5 andet omsorgsarbejde end hjemmehj\u00E6lp. Hjemmesygepleje henvises til 86.94.00." + }, + { + "Code": "881020", + "Title": "Drift af dagcentre mv.", + "Description": "Branchen omfatter drift af dagcentre mv., fx \u00E5bne dagcentre, v\u00E6resteder og aktivitetscentre. Daghjem, der ogs\u00E5 er en del af integreret plejeordning, henvises til 87.10.10." + }, + { + "Code": "881030", + "Title": "Drift af revalideringsinstitutioner", + "Description": "Branchen omfatter drift af revalideringsklinikker samt beskyttede v\u00E6rksteder. Institutioner for stofmisbrugere og alkoholskadede henvises til 87.20.20." + }, + { + "Code": "889110", + "Title": "Drift af dagpleje", + "Description": "Branchen omfatter drift af dagpleje, hvor b\u00F8rn passes i private hjem, formidlet af kommunen eller uden offentlig st\u00F8tte. Branchen omfatter ogs\u00E5 dagpleje for b\u00F8rn med funktionsneds\u00E6ttelser." + }, + { + "Code": "889120", + "Title": "Drift af vuggestuer", + "Description": "Branchen omfatter drift af vuggestuer og daginstitutioner for b\u00F8rn i alderen 0-3 \u00E5r, herunder ogs\u00E5 pasningsordninger for b\u00F8rn med funktionsneds\u00E6ttelser. Aldersintegrerede institutioner henvises til 88.91.50." + }, + { + "Code": "889130", + "Title": "Drift af b\u00F8rnehaver", + "Description": "Branchen omfatter drift af b\u00F8rnehaver og daginstitutioner for b\u00F8rn i alderen 2-6 \u00E5r, herunder ogs\u00E5 pasningsordninger for b\u00F8rn med funktionsneds\u00E6ttelser.Aldersintegrerede institutioner henvises til 88.91.50." + }, + { + "Code": "889140", + "Title": "Drift af skolefritidsordninger og fritidshjem", + "Description": "Branchen omfatter drift af skolefritidsordninger og fritidshjem, fritidsklubber for b\u00F8rn og pasningsordninger overvejende for b\u00F8rn i alderen 5-14 \u00E5r samt byggelegepladser." + }, + { + "Code": "889150", + "Title": "Drift af aldersintegrerede institutioner", + "Description": "Branchen omfatter drift af aldersintegrerede institutioner, fx daginstitutioner der er beregnet til b\u00F8rn i alderen 0-14 \u00E5r, 0-6 \u00E5r eller 3-14 \u00E5r, herunder s\u00E6rlige daginstitutioner for b\u00F8rn med vidtg\u00E5ende fysiske eller psykiske handicap." + }, + { + "Code": "889160", + "Title": "Drift af fritids- og ungdomsklubber", + "Description": "Branchen omfatter drift af fritids-og ungdomsklubber prim\u00E6rt for st\u00F8rre b\u00F8rn og unge. Fritidshjem henvises til 88.91.40." + }, + { + "Code": "889910", + "Title": "St\u00F8tteaktiviteter relateret til sygdomsbek\u00E6mpende, sociale og velg\u00F8rende form\u00E5l", + "Description": "Branchen omfatter bl.a. indsamling af midler til velg\u00F8rende form\u00E5l, herunder sygdomsbek\u00E6mpelse." + }, + { + "Code": "889920", + "Title": "Aktiviteter til st\u00F8tte for flygtninge- og katastrofeofre mv.", + "Description": "Branchen omfatter bl.a. aktiviteter, herunder r\u00E5dgivning, til flygtninge, katastrofeofre og indvandrere." + }, + { + "Code": "889990", + "Title": "Andre sociale st\u00F8tte- og r\u00E5dgivningsaktiviteter uden institutionsophold", + "Description": "Branchen omfatter sociale foranstaltninger inden for st\u00F8tte og r\u00E5dgivning, herunder hj\u00E6lpemiddelcentraler." + }, + { + "Code": "901100", + "Title": "Litteratur- og musikkomposition", + "Description": "Branchen omfatter komponering af musik, forfatning af tekster, fx manuskriptforfatteres og journalisters aktiviteter mv. Branchen omfatter ogs\u00E5 teknisk forfatterarbejde." + }, + { + "Code": "901200", + "Title": "Billedkunstnerisk skaben", + "Description": "Branchen omfatter billedkunstnerisk skaben, herunder billedhuggere, malere og bladtegnere, inkl. digital skabelse af billedkunst samt lydinstallationer." + }, + { + "Code": "901300", + "Title": "Anden kunstnerisk skaben", + "Description": "Branchen omfatter aktiviteter i forbindelse med scenekunst som koreografiske aktiviteter." + }, + { + "Code": "902010", + "Title": "Teater- og koncertproduktioner", + "Description": "Branchen omfatter teater- og koncertproduktioner, herunder live sceneproduktioner, fx koncerter, opera, dans, opf\u00F8rt af grupper af kunstnere, cirkusser, bands, orkestre mv." + }, + { + "Code": "902020", + "Title": "Selvst\u00E6ndigt ud\u00F8vende scenekunstnere", + "Description": "Branchen omfatter selvst\u00E6ndigt ud\u00F8vende scenekunstnere, fx live sceneproduktioner som teaterforestillinger, koncerter, opera mv., opf\u00F8rt af selvst\u00E6ndigt ud\u00F8vende scenekunstnere. Branchen omfatter ogs\u00E5 freelance fotomodeller, uafh\u00E6ngige musikere, skuespillere mv." + }, + { + "Code": "903100", + "Title": "Drift af teater- og koncertsale, kulturhuse mv.", + "Description": "Branchen omfatter drift af kulturfaciliteter, fx teater- og koncertsale og kulturhuse, og kulturfaciliteter som st\u00F8tter kunstnerisk skaben inden for billedkunst." + }, + { + "Code": "903910", + "Title": "Teknisk planl\u00E6gning, levering, ops\u00E6tning og betjening af udstyr til events", + "Description": "Branchen omfatter udlejning af teknisk udstyr, med operat\u00F8rer, til hovedsageligt arrang\u00F8rer af kunstneriske arrangementer, fx koncerter, teaterforestillinger, musikfestivaller mv." + }, + { + "Code": "903920", + "Title": "Levering af andre serviceydelser i forbindelse med kunstnerisk skaben og scenekunst i.a.n.", + "Description": "Branchen omfatter serviceydelser til produktion af live optr\u00E6dener, herunder teaterforestillinger, koncerter, opera mv. Serviceydelserne omfatter programledelse, kulissedesignere, lysteknikere, film- og teaterinstrukt\u00F8rer mv." + }, + { + "Code": "911100", + "Title": "Biblioteksaktiviteter", + "Description": "Branchen omfatter aktiviteter p\u00E5 alle slags biblioteker og l\u00E6sesale mv. P\u00E6dagogiske centraler og filmbiblioteker h\u00F8rer ogs\u00E5 til branchen." + }, + { + "Code": "911200", + "Title": "Arkivaktiviteter", + "Description": "Branchen omfatter arkivering af fx b\u00F8ger, film, kunstv\u00E6rker mv. inkl. fotolagre og digitalisering af arkivdokumenter. Branchen omfatter ogs\u00E5 arkivering af alle typer dokumenter. Lagring af datafiler henvises til 63.10.00." + }, + { + "Code": "912100", + "Title": "Museumsaktiviteter og aktiviteter i forbindelse med samlinger", + "Description": "Branchen omfatter drift og bevarelse af fortidsminder, mindesm\u00E6rker, herunder pasning, vurdering og udstilling af museumssamlinger af enhver art." + }, + { + "Code": "912200", + "Title": "Drift og bevarelse af fortidsminder, mindesm\u00E6rker mv.", + "Description": "Branchen omfatter drift og vedligeholdelse af historiske monumenter, bygninger og lignende attraktioner, men ikke renovering og restaurering, som h\u00F8rer til bygge- og anl\u00E6gssektoren." + }, + { + "Code": "913000", + "Title": "Konservering, restaurering og andre serviceydelser inden for kulturarv", + "Description": "Branchen omfatter konservering og restaurering af historiske og ark\u00E6ologiske v\u00E6rdier af ethvert materiale. Branchen omfatter ogs\u00E5 konsulentydelser vedr\u00F8rende konservering og restaurering, men ikke renovering og restaurering, som h\u00F8rer til bygge- og anl\u00E6gssektoren." + }, + { + "Code": "914100", + "Title": "Drift af botaniske og zoologiske haver", + "Description": "Branchen omfatter botaniske og zoologiske haver samt akvarier." + }, + { + "Code": "914200", + "Title": "Drift af naturreservater", + "Description": "Branchen omfatter drift af naturreservater, herunder vildtbeskyttelse og tjenesteydelser til naturpleje og vedligehold af disse omr\u00E5der." + }, + { + "Code": "920000", + "Title": "Lotteri- og andre spilleaktiviteter", + "Description": "Branchen omfatter drift af spillefaciliteter, fx kasino og bingohaller, og spilleaktiviteter, fx spilleautomater, bookmakere og salg af lodsedler. Dette g\u00E6lder ogs\u00E5 drift af online versioner af samme." + }, + { + "Code": "931100", + "Title": "Drift af sportsanl\u00E6g", + "Description": "Branchen omfatter drift af alle former for inden- og udend\u00F8rs sportsanl\u00E6g. Tilrettel\u00E6ggelse og afvikling af sportsbegivenheder p\u00E5 egne anl\u00E6g samt styring og formidling af personale til driften er ogs\u00E5 omfattet af branchen." + }, + { + "Code": "931200", + "Title": "Drift af sportsklubber", + "Description": "Branchen omfatter drift af alle former for sportsklubber og idr\u00E6tsforbund, herunder klubber for e-sport eller kortspil." + }, + { + "Code": "931300", + "Title": "Drift af fitnesscentre", + "Description": "Branchen omfatter fitnesscentre, sundheds- og bodybuilderklubber samt aerobicinstitutter, der inkluderer et medlemskab." + }, + { + "Code": "931900", + "Title": "Sportsaktiviteter i.a.n.", + "Description": "Branchen omfatter andre former for sportsaktiviteter, fx aktiviteter for at fremme sportsbegivenheder, aktiviteter ud\u00F8vet af professionelle sportsfolk, drift af omr\u00E5der til sportsfiskeri og jagt samt stalde for v\u00E6ddel\u00F8bsheste og hunde." + }, + { + "Code": "932100", + "Title": "Drift af forlystelsesparker o.lign.", + "Description": "Branchen omfatter drift af forlystelsesparker samt andre attraktioner, fx badelande, vandrutsjebaner, temaudstillinger og udflugtsomr\u00E5der." + }, + { + "Code": "932910", + "Title": "Drift af lystb\u00E5dehavne", + "Description": "Branchen omfatter drift af lystb\u00E5dehavne til forn\u00F8jelser og fritidsaktiviteter." + }, + { + "Code": "932990", + "Title": "Drift af andre forlystelser og fritidsaktiviteter", + "Description": "Branchen omfatter forlystelser og fritidsaktiviteter, fx drift af skibakker inkl. udlejning af skiudstyr, udlejning af badehuse og afl\u00E5selige skabe samt drift af dansesteder (uden servering)." + }, + { + "Code": "941100", + "Title": "Erhvervs- og arbejdsgiverorganisationers aktiviteter", + "Description": "Branchen omfatter erhvervs- og arbejdsgiverorganisationer, som varetager s\u00E6rlige gruppers interesser eller fremmer id\u00E9er for offentligheden. Disse organisationer har for det meste en medlemskreds." + }, + { + "Code": "941200", + "Title": "Faglige sammenslutningers aktiviteter", + "Description": "Branchen omfatter faglige sammenslutninger, hvor aktiviteten hovedsaglig best\u00E5r i formidling af viden for og mellem medlemmerne." + }, + { + "Code": "942000", + "Title": "Fagforeningers aktiviteter", + "Description": "Branchen omfatter fagforeninger, der varetager l\u00F8nmodtagernes interesser." + }, + { + "Code": "949100", + "Title": "Religi\u00F8se institutioners og foreningers aktiviteter", + "Description": "Branchen omfatter religi\u00F8se foreninger eller enkeltpersoner, som leverer ydelser til diverse trossamfund." + }, + { + "Code": "949200", + "Title": "Politiske partiers aktiviteter", + "Description": "Branchen omfatter politiske partier og deres st\u00F8tteorganisationer, fx ungdomsorganisationer." + }, + { + "Code": "949900", + "Title": "Andre organisationers og foreningers aktiviteter i.a.n.", + "Description": "Branchen omfatter en bred vifte af forskellige organisationer og foreninger med forskellige m\u00E5l, der ikke er tilknyttet til et politisk parti, fx borgerinitiativer, protestbev\u00E6gelser, milj\u00F8- og \u00F8kologibev\u00E6gelser og organisationer, der underst\u00F8tter kultur- og uddannelsesinstitutioner." + }, + { + "Code": "951000", + "Title": "Reparation og vedligeholdelse af computere og kommunikationsudstyr", + "Description": "Branchen omfatter reparation og vedligeholdelse af computere, kommunikationsudstyr, it-udstyr og ydre enheder samt kasseterminaler." + }, + { + "Code": "952100", + "Title": "Reparation og vedligeholdelse af forbrugerelektronik", + "Description": "Branchen omfatter reparation og vedligeholdelse af forbrugerelektronik, som ikke er computere eller kommunikationsudstyr, til privat brug som fx TV og radio." + }, + { + "Code": "952200", + "Title": "Reparation og vedligeholdelse af husholdningsapparater og redskaber til hus og have", + "Description": "Branchen omfatter reparation og serviceeftersyn af apparater til husholdninger, fx k\u00F8leskabe, vaskemaskiner og ovne samt af redskaber til hus og have, fx pl\u00E6neklippere og kantklippere." + }, + { + "Code": "952300", + "Title": "Reparation og vedligeholdelse af fodt\u00F8j og l\u00E6dervarer", + "Description": "Branchen omfatter reparation og vedligeholdelse af fodt\u00F8j og l\u00E6dervarer." + }, + { + "Code": "952400", + "Title": "Reparation og vedligeholdelse af m\u00F8bler og boligudstyr", + "Description": "Branchen omfatter reparation, restaurering og vedligeholdelse af m\u00F8bler og boligudstyr samt restaurering af m\u00F8bler og boligudstyr." + }, + { + "Code": "952500", + "Title": "Reparation og vedligeholdelse af ure og smykker", + "Description": "Branchen omfatter reparation af smykker og ure samt dele hertil, fx urkasser- og kabinetter. Reparation af kontrolure, tid- og datostempler og andre tidtagningsprodukter henvises til 33.13.00." + }, + { + "Code": "952900", + "Title": "Reparation og vedligeholdelse af varer til personlig brug og husholdningsbrug i.a.n.", + "Description": "Branchen omfatter reparation af en bred vifte af varer til personligt husholdningsbrug, fx cykler, musikinstrumenter, b\u00F8ger, leget\u00F8j, campingudstyr og sportsudstyr." + }, + { + "Code": "953110", + "Title": "D\u00E6kservice", + "Description": "Branchen omfatter reparation, montering og udskiftning af d\u00E6k." + }, + { + "Code": "953120", + "Title": "Reparation og lakering af karosseri samt undervognsbehandling", + "Description": "Branchen omfatter reparation og lakering af karosseri p\u00E5 last- og personbiler mv." + }, + { + "Code": "953190", + "Title": "Reparation og vedligeholdelse af motork\u00F8ret\u00F8jer i.a.n.", + "Description": "Branchen omfatter reparation og vedligeholdelse af motork\u00F8ret\u00F8jer, herunder trailere og anh\u00E6ngere." + }, + { + "Code": "953200", + "Title": "Reparation og vedligeholdelse af motorcykler", + "Description": "Branchen omfatter reparation og vedligeholdelse af motorcykler, inklusiv lakering og malerarbejde." + }, + { + "Code": "954000", + "Title": "Formidlingsaktiviteter i forbindelse med reparation og vedligeholdelse af computere, varer til personlig brug og husholdningsbrug samt motork\u00F8ret\u00F8jer og motorcykler", + "Description": "Branchen omfatter formidlingsaktiviteter inden for reparation og vedligeholdelse af computere, varer til personlig brug og husholdningsbrug samt motork\u00F8ret\u00F8jer og motorcykler." + }, + { + "Code": "961010", + "Title": "Drift af erhvervs- og institutionsvaskerier", + "Description": "Branchen omfatter kombinerede udlejnings- og vaskeservices, herunder vask og reng\u00F8ring af tekstiler." + }, + { + "Code": "961020", + "Title": "Drift af renserier og selvbetjeningsvaskerier mv.", + "Description": "Branchen omfatter drift af renserier og selvbetjeningsvaskerier samt reng\u00F8ring af t\u00E6pper og gardiner, fx hjemme hos kunden." + }, + { + "Code": "962100", + "Title": "Drift af fris\u00F8r- og barbersaloner", + "Description": "Branchen omfatter drift af fris\u00F8r- og barbersaloner." + }, + { + "Code": "962200", + "Title": "Sk\u00F8nhedspleje og anden sk\u00F8nhedsbehandling", + "Description": "Branchen omfatter sk\u00F8nhedspleje og anden sk\u00F8nhedsbehandling, med undtagelse af kosmetisk kirurgi udf\u00F8rt af l\u00E6gefaglige specialister." + }, + { + "Code": "962300", + "Title": "Drift af dagspa, saunaer og dampbade", + "Description": "Branchen omfatter drift af dagspa, slankeklinikker, solarier, saunaer, dampbade mv." + }, + { + "Code": "963000", + "Title": "Drift af bedemandsforretninger og begravelsesv\u00E6sen", + "Description": "Branchen omfatter drift af bedemandsforretninger og begravelsesv\u00E6sen, herunder klarg\u00F8ring af d\u00F8de og tjenester i forbindelse med begravelse og salg af gravsten. Religi\u00F8se begravelsestjenester henvises til 94.91.00." + }, + { + "Code": "964000", + "Title": "Formidlingsaktiviteter inden for personlige serviceydelser", + "Description": "Branchen omfatter formidlingsaktiviteter inden for personlige serviceydelser." + }, + { + "Code": "969100", + "Title": "Levering af personlige serviceydelser i hjemmet", + "Description": "Branchen omfatter levering af personlige serviceydelser i hjemmet." + }, + { + "Code": "969900", + "Title": "Andre personlige serviceydelser i.a.n.", + "Description": "Branchen omfatter personlige serviceydelser som fx astrologi- og spiritualitetsaktiviteter og sociale ydelser, fx escortservices, datingservices, \u00E6gteskabsbureauer mv." + }, + { + "Code": "970000", + "Title": "Aktiviteter i husholdninger med ansat medhj\u00E6lp", + "Description": "Branchen omfatter private husholdninger med ansat medhj\u00E6lp, fx kokke, gartnere, sekret\u00E6rer og husassistenter, fx au pair. Personer med funktionsneds\u00E6ttelse med egen ansat hj\u00E6lp h\u00F8rer ogs\u00E5 under denne branche." + }, + { + "Code": "981000", + "Title": "Private husholdningers produktion af udifferentierede varer til eget brug", + "Description": "Branchen omfatter husholdningers produktion af varer til eget forbrug, fx jagt, indsamling, landbrug samt produktion af bekl\u00E6dning til egen fors\u00F8rgelse." + }, + { + "Code": "982000", + "Title": "Private husholdningers produktion af udifferentierede tjenesteydelser til eget brug", + "Description": "Branchen omfatter ydelser som fx madlavning, pasning af husholdningens medlemmer, undervisning og andre tjenesteydelser, som husholdningen producerer til egen fors\u00F8rgelse." + }, + { + "Code": "990010", + "Title": "Ambassaders eksterritoriale aktivitet", + "Description": "Branchen omfatter andre landes ambassader og konsulater." + }, + { + "Code": "990020", + "Title": "Andre eksterritoriale organisationers og organers aktiviteter", + "Description": "Branchen omfatter internationale organisationer, fx Verdensbanken, Den Europ\u00E6iske Frihandelssammenslutning og FN-systemets organer." + } +] \ No newline at end of file diff --git a/DanishCvr/Resources/postnumre.json b/DanishCvr/Resources/postnumre.json new file mode 100644 index 0000000..17e9703 --- /dev/null +++ b/DanishCvr/Resources/postnumre.json @@ -0,0 +1,22323 @@ +[ + { + "href": "https://api.dataforsyningen.dk/postnumre/1050", + "nr": "1050", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5841266, 55.67871944, 12.58827962, 55.68185111], + "visueltcenter": [12.58600133, 55.68065246], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191050" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1051", + "nr": "1051", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58727138, 55.67873773, 12.59417472, 55.68095605], + "visueltcenter": [12.59022696, 55.6798377], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191051" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1052", + "nr": "1052", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5873434, 55.67813302, 12.59274477, 55.67957324], + "visueltcenter": [12.58954953, 55.67906706], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-20T21:03:13.939Z", + "geo_ændret": "2024-09-20T21:03:13.939Z", + "geo_version": 3, + "dagi_id": "191052" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1053", + "nr": "1053", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59005794, 55.67748162, 12.59131831, 55.67856512], + "visueltcenter": [12.59073024, 55.67798554], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191053" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1054", + "nr": "1054", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58756005, 55.67691468, 12.59008506, 55.67921557], + "visueltcenter": [12.58906639, 55.67763459], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191054" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1055", + "nr": "1055", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5861399, 55.67620892, 12.58930145, 55.67983278], + "visueltcenter": [12.58807383, 55.67723256], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191055" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1056", + "nr": "1056", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58709529, 55.67892192, 12.58918614, 55.67998257], + "visueltcenter": [12.58793902, 55.67946993], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-20T21:03:13.939Z", + "geo_ændret": "2024-09-20T21:03:13.939Z", + "geo_version": 3, + "dagi_id": "191056" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1057", + "nr": "1057", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58632486, 55.67701049, 12.59165074, 55.67974155], + "visueltcenter": [12.58959143, 55.67833309], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191057" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1058", + "nr": "1058", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58419617, 55.67507788, 12.59463214, 55.67944598], + "visueltcenter": [12.58792693, 55.67595336], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191058" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1059", + "nr": "1059", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58560275, 55.67612915, 12.58783096, 55.67776146], + "visueltcenter": [12.58672365, 55.67675239], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191059" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1060", + "nr": "1060", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58239708, 55.67578293, 12.58710101, 55.67946784], + "visueltcenter": [12.5837984, 55.67651434], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191060" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1061", + "nr": "1061", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57982099, 55.6766095, 12.58277651, 55.67811397], + "visueltcenter": [12.5810871, 55.67749602], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191061" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1062", + "nr": "1062", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58164715, 55.67718285, 12.58245277, 55.67762541], + "visueltcenter": [12.5820684, 55.67745504], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191062" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1063", + "nr": "1063", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58225465, 55.67738474, 12.58602746, 55.67875878], + "visueltcenter": [12.58481601, 55.67812648], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191063" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1064", + "nr": "1064", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58370154, 55.67809465, 12.58462468, 55.67874842], + "visueltcenter": [12.58421619, 55.67855701], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191064" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1065", + "nr": "1065", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58073856, 55.67780499, 12.58178843, 55.67822257], + "visueltcenter": [12.58120927, 55.67792419], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191065" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1066", + "nr": "1066", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5812756, 55.67678128, 12.58347697, 55.67823235], + "visueltcenter": [12.58283658, 55.67738024], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191066" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1067", + "nr": "1067", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58035515, 55.67796899, 12.5827441, 55.67944564], + "visueltcenter": [12.58180816, 55.67872776], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191067" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1068", + "nr": "1068", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58212016, 55.67697676, 12.58408724, 55.67843056], + "visueltcenter": [12.58355191, 55.67746813], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191068" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1069", + "nr": "1069", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58207688, 55.67726088, 12.58476785, 55.67970902], + "visueltcenter": [12.58417532, 55.67777633], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191069" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1070", + "nr": "1070", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58229552, 55.67821787, 12.58583901, 55.67919061], + "visueltcenter": [12.58352498, 55.67881568], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191070" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1071", + "nr": "1071", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58209735, 55.67765371, 12.58420943, 55.67848317], + "visueltcenter": [12.58375053, 55.67826694], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191071" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1072", + "nr": "1072", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58027092, 55.6781463, 12.58107667, 55.67867838], + "visueltcenter": [12.58065996, 55.67845615], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191072" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1073", + "nr": "1073", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5800692, 55.67863202, 12.5811331, 55.67894151], + "visueltcenter": [12.58060115, 55.67878677], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2022-08-25T21:02:14.948Z", + "geo_ændret": "2022-08-25T21:02:14.948Z", + "geo_version": 3, + "dagi_id": "191073" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1074", + "nr": "1074", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5821222, 55.67891193, 12.58489688, 55.68004133], + "visueltcenter": [12.5835962, 55.67941235], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191074" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1100", + "nr": "1100", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57958471, 55.67854035, 12.58473421, 55.68083562], + "visueltcenter": [12.58283276, 55.67989336], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-07-07T21:07:30.810Z", + "geo_ændret": "2023-07-07T21:07:30.810Z", + "geo_version": 5, + "dagi_id": "191100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1101", + "nr": "1101", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58079786, 55.67997207, 12.58401497, 55.68226616], + "visueltcenter": [12.5831775, 55.68044771], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191101" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1102", + "nr": "1102", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5824, 55.68043914, 12.58306763, 55.68093142], + "visueltcenter": [12.58279789, 55.68084435], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191102" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1103", + "nr": "1103", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58330906, 55.68030998, 12.58463274, 55.68116783], + "visueltcenter": [12.58412972, 55.68076455], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191103" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1104", + "nr": "1104", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58324991, 55.68091916, 12.58472441, 55.68153431], + "visueltcenter": [12.58393567, 55.68124172], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191104" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1105", + "nr": "1105", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58167535, 55.67968729, 12.58262711, 55.6808388], + "visueltcenter": [12.58212355, 55.68003329], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191105" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1106", + "nr": "1106", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58078333, 55.68013077, 12.58203277, 55.68071928], + "visueltcenter": [12.58120094, 55.68045276], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191106" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1107", + "nr": "1107", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58187783, 55.68063819, 12.58382718, 55.68189112], + "visueltcenter": [12.58319268, 55.68161934], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191107" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1110", + "nr": "1110", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58133222, 55.6811914, 12.58305405, 55.68220522], + "visueltcenter": [12.5818153, 55.68146481], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191110" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1111", + "nr": "1111", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58027477, 55.68144432, 12.58154158, 55.68259429], + "visueltcenter": [12.58080608, 55.68219996], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191111" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1112", + "nr": "1112", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57628769, 55.67920716, 12.5821116, 55.68237722], + "visueltcenter": [12.57974966, 55.68123981], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191112" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1113", + "nr": "1113", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57927045, 55.67950781, 12.58100793, 55.68061258], + "visueltcenter": [12.58017369, 55.68001592], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-10T21:36:32.078Z", + "geo_version": 2, + "dagi_id": "191113" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1114", + "nr": "1114", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57826836, 55.68024246, 12.58028207, 55.68107203], + "visueltcenter": [12.57891556, 55.68069802], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-15T21:14:07.617Z", + "geo_ændret": "2018-05-15T21:14:07.617Z", + "geo_version": 3, + "dagi_id": "191114" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1115", + "nr": "1115", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57764504, 55.68066812, 12.57899419, 55.68150422], + "visueltcenter": [12.5782846, 55.68103123], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191115" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1116", + "nr": "1116", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57866167, 55.68124611, 12.58066758, 55.68268016], + "visueltcenter": [12.58005882, 55.68222456], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191116" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1117", + "nr": "1117", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5794581, 55.68047765, 12.58212423, 55.68206184], + "visueltcenter": [12.58157142, 55.6810324], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191117" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1118", + "nr": "1118", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58014521, 55.68080677, 12.5813173, 55.68137503], + "visueltcenter": [12.58080964, 55.68104247], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191118" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1119", + "nr": "1119", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57516985, 55.68137713, 12.5785992, 55.68351318], + "visueltcenter": [12.57714609, 55.6823894], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-16T21:26:47.866Z", + "geo_version": 2, + "dagi_id": "191119" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1120", + "nr": "1120", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57736055, 55.68185506, 12.5799091, 55.68293581], + "visueltcenter": [12.57870875, 55.68236562], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191120" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1121", + "nr": "1121", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57848886, 55.68262261, 12.57929899, 55.68304936], + "visueltcenter": [12.57891573, 55.68277836], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191121" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1122", + "nr": "1122", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57914191, 55.68220836, 12.58011321, 55.68292102], + "visueltcenter": [12.57978841, 55.68253368], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-15T21:14:07.617Z", + "geo_ændret": "2018-05-15T21:14:07.617Z", + "geo_version": 2, + "dagi_id": "191122" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1123", + "nr": "1123", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56366698, 55.68133467, 12.58574947, 55.68751251], + "visueltcenter": [12.57745579, 55.68426232], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191123" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1124", + "nr": "1124", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57450819, 55.68265706, 12.57784518, 55.68377319], + "visueltcenter": [12.57689183, 55.68303024], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191124" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1125", + "nr": "1125", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57560224, 55.68197198, 12.57686085, 55.68284799], + "visueltcenter": [12.5763264, 55.6824351], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191125" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1126", + "nr": "1126", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57464015, 55.68195881, 12.57571202, 55.68252552], + "visueltcenter": [12.57516001, 55.68230152], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-11-17T22:12:07.743Z", + "geo_ændret": "2023-11-17T22:12:07.743Z", + "geo_version": 3, + "dagi_id": "191126" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1127", + "nr": "1127", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57450765, 55.68212802, 12.57655291, 55.68331102], + "visueltcenter": [12.57557089, 55.68291443], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-11-17T22:12:07.743Z", + "geo_ændret": "2023-11-17T22:12:07.743Z", + "geo_version": 3, + "dagi_id": "191127" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1128", + "nr": "1128", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57433266, 55.68257389, 12.57503999, 55.68307856], + "visueltcenter": [12.57473787, 55.68282201], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2021-06-16T21:01:38.265Z", + "geo_ændret": "2021-06-16T21:01:38.265Z", + "geo_version": 3, + "dagi_id": "191128" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1129", + "nr": "1129", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57395477, 55.68280997, 12.5748693, 55.68353105], + "visueltcenter": [12.57433901, 55.68317382], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191129" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1130", + "nr": "1130", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57308274, 55.68290083, 12.5749321, 55.68424768], + "visueltcenter": [12.57364349, 55.68337542], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191130" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1131", + "nr": "1131", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57340007, 55.68365781, 12.57444146, 55.68422319], + "visueltcenter": [12.5738097, 55.68385549], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191131" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1150", + "nr": "1150", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57385997, 55.67898064, 12.58038603, 55.68231823], + "visueltcenter": [12.57713782, 55.68116195], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 9, + "dagi_id": "191150" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1151", + "nr": "1151", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57567239, 55.67859687, 12.57845161, 55.68048428], + "visueltcenter": [12.57640167, 55.67925834], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 3, + "dagi_id": "191151" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1152", + "nr": "1152", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57631784, 55.67987769, 12.57768429, 55.68082572], + "visueltcenter": [12.57705358, 55.68037643], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-04-18T21:08:35.132Z", + "geo_version": 2, + "dagi_id": "191152" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1153", + "nr": "1153", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5754334, 55.67860665, 12.57837438, 55.6805874], + "visueltcenter": [12.57741313, 55.67913736], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 2, + "dagi_id": "191153" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1154", + "nr": "1154", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57493426, 55.67917563, 12.57666415, 55.68034596], + "visueltcenter": [12.5758435, 55.67961793], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 2, + "dagi_id": "191154" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1155", + "nr": "1155", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5751409, 55.67981302, 12.57583303, 55.68021225], + "visueltcenter": [12.57544104, 55.68007367], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 2, + "dagi_id": "191155" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1156", + "nr": "1156", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57504813, 55.6793482, 12.57554343, 55.67969661], + "visueltcenter": [12.57530761, 55.67957221], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191156" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1157", + "nr": "1157", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57441748, 55.67867874, 12.57641481, 55.67969095], + "visueltcenter": [12.57544281, 55.67907168], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-24T21:01:59.353Z", + "geo_ændret": "2024-09-24T21:01:59.353Z", + "geo_version": 2, + "dagi_id": "191157" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1158", + "nr": "1158", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57327582, 55.67846071, 12.57389834, 55.67883662], + "visueltcenter": [12.57361214, 55.67861951], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191158" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1159", + "nr": "1159", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57219924, 55.67826867, 12.57663519, 55.68126848], + "visueltcenter": [12.57608635, 55.68077513], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191159" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1160", + "nr": "1160", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57597473, 55.67793061, 12.58003134, 55.67989242], + "visueltcenter": [12.57872573, 55.67891577], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-07-07T21:07:30.810Z", + "geo_ændret": "2023-07-07T21:07:30.810Z", + "geo_version": 6, + "dagi_id": "191160" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1161", + "nr": "1161", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57370412, 55.67795638, 12.57642079, 55.67923847], + "visueltcenter": [12.57562704, 55.67849122], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-24T21:01:59.353Z", + "geo_ændret": "2024-09-24T21:01:59.353Z", + "geo_version": 11, + "dagi_id": "191161" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1162", + "nr": "1162", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57387202, 55.67873219, 12.57466117, 55.67913004], + "visueltcenter": [12.57424006, 55.67892784], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-11-05T22:14:33.117Z", + "geo_ændret": "2018-11-05T22:14:33.117Z", + "geo_version": 4, + "dagi_id": "716035" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1164", + "nr": "1164", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57286451, 55.67793151, 12.57403801, 55.67855512], + "visueltcenter": [12.57338344, 55.67826381], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-01T21:24:59.627Z", + "geo_version": 2, + "dagi_id": "191164" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1165", + "nr": "1165", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56917103, 55.67844888, 12.57386988, 55.68272463], + "visueltcenter": [12.57068192, 55.68076308], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191165" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1166", + "nr": "1166", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57245968, 55.67880326, 12.57392987, 55.67936486], + "visueltcenter": [12.57281215, 55.67899335], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191166" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1167", + "nr": "1167", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57120114, 55.67885873, 12.57180021, 55.67925183], + "visueltcenter": [12.57155172, 55.6791299], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191167" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1168", + "nr": "1168", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57156647, 55.67952136, 12.57308555, 55.68030619], + "visueltcenter": [12.57235905, 55.67990118], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-15T21:14:07.617Z", + "geo_ændret": "2018-05-15T21:14:07.617Z", + "geo_version": 2, + "dagi_id": "191168" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1169", + "nr": "1169", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57356584, 55.6797369, 12.57589278, 55.68148899], + "visueltcenter": [12.57454621, 55.680565], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191169" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1170", + "nr": "1170", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57411072, 55.67989013, 12.57506915, 55.68039228], + "visueltcenter": [12.57446263, 55.68008905], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191170" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1171", + "nr": "1171", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57121701, 55.679163, 12.57439725, 55.68278079], + "visueltcenter": [12.57230844, 55.68176293], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191171" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1172", + "nr": "1172", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57140956, 55.6799252, 12.57548137, 55.68155228], + "visueltcenter": [12.5736165, 55.68095745], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-15T21:14:07.617Z", + "geo_ændret": "2018-05-15T21:14:07.617Z", + "geo_version": 3, + "dagi_id": "191172" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1173", + "nr": "1173", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57272831, 55.68118211, 12.57470998, 55.68221771], + "visueltcenter": [12.57365135, 55.68174413], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191173" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1174", + "nr": "1174", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57175751, 55.68187388, 12.57392151, 55.68273894], + "visueltcenter": [12.5724811, 55.68241134], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191174" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1175", + "nr": "1175", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57285768, 55.68195007, 12.57509815, 55.68291031], + "visueltcenter": [12.57414508, 55.68255536], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2021-06-16T21:01:38.265Z", + "geo_ændret": "2021-06-16T21:01:38.265Z", + "geo_version": 3, + "dagi_id": "191175" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1200", + "nr": "1200", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57904306, 55.67771976, 12.58103837, 55.67882187], + "visueltcenter": [12.5798222, 55.67820341], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1201", + "nr": "1201", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57684452, 55.67755223, 12.57939953, 55.678693], + "visueltcenter": [12.57787668, 55.67813397], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-07-10T21:09:46.035Z", + "geo_ændret": "2018-07-10T21:09:46.035Z", + "geo_version": 4, + "dagi_id": "191201" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1202", + "nr": "1202", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57715151, 55.6771682, 12.58003017, 55.6781806], + "visueltcenter": [12.57894282, 55.6777881], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191202" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1203", + "nr": "1203", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57503815, 55.67572857, 12.57799725, 55.6773681], + "visueltcenter": [12.57680004, 55.6765462], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191203" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1204", + "nr": "1204", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57484355, 55.67603987, 12.57620097, 55.67683549], + "visueltcenter": [12.57548042, 55.67653214], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191204" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1205", + "nr": "1205", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57605352, 55.67674441, 12.57761122, 55.67743963], + "visueltcenter": [12.57678089, 55.67723642], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191205" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1206", + "nr": "1206", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57663485, 55.67728592, 12.57736792, 55.67783572], + "visueltcenter": [12.57706457, 55.67754793], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191206" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1207", + "nr": "1207", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5759389, 55.67782219, 12.57707927, 55.6784606], + "visueltcenter": [12.57661838, 55.67810969], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191207" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1208", + "nr": "1208", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57323458, 55.67607931, 12.57696771, 55.67806766], + "visueltcenter": [12.57500757, 55.6769724], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191208" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1209", + "nr": "1209", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57436349, 55.67744437, 12.57637535, 55.67864233], + "visueltcenter": [12.57572903, 55.67789078], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191209" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1210", + "nr": "1210", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57363111, 55.67650687, 12.57662327, 55.67841288], + "visueltcenter": [12.57425967, 55.67809804], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-02-13T22:04:25.816Z", + "geo_ændret": "2019-02-13T22:04:25.816Z", + "geo_version": 3, + "dagi_id": "191210" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1211", + "nr": "1211", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57372036, 55.67711113, 12.57545182, 55.67811281], + "visueltcenter": [12.5742407, 55.67746346], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191211" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1212", + "nr": "1212", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57783067, 55.67661107, 12.57950342, 55.67748757], + "visueltcenter": [12.57874486, 55.6770308], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191212" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1213", + "nr": "1213", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57718108, 55.67621863, 12.57874239, 55.67710922], + "visueltcenter": [12.57779783, 55.67665117], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191213" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1214", + "nr": "1214", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57716521, 55.67399606, 12.58081121, 55.67528479], + "visueltcenter": [12.57975543, 55.67457161], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191214" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1215", + "nr": "1215", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58163211, 55.67485114, 12.58671686, 55.67665116], + "visueltcenter": [12.58576691, 55.67544188], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 5, + "dagi_id": "191215" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1216", + "nr": "1216", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58181418, 55.67407704, 12.58688037, 55.67618876], + "visueltcenter": [12.58304021, 55.67524053], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 4, + "dagi_id": "191216" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1218", + "nr": "1218", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57562106, 55.67370618, 12.58337715, 55.6777235], + "visueltcenter": [12.58039426, 55.67606465], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191218" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1219", + "nr": "1219", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57726027, 55.67011736, 12.586825, 55.67542783], + "visueltcenter": [12.58340336, 55.67370675], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191219" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1220", + "nr": "1220", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57394693, 55.67245008, 12.58109258, 55.67623161], + "visueltcenter": [12.57862049, 55.67358331], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1221", + "nr": "1221", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57987822, 55.67148938, 12.58747082, 55.67588951], + "visueltcenter": [12.58192337, 55.67283897], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "413310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1250", + "nr": "1250", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58843298, 55.67987604, 12.59690758, 55.68268955], + "visueltcenter": [12.58975823, 55.68202801], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 4, + "dagi_id": "191250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1251", + "nr": "1251", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59239008, 55.6783403, 12.59644524, 55.68075588], + "visueltcenter": [12.59498748, 55.67960602], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191251" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1252", + "nr": "1252", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59446045, 55.6803565, 12.59785712, 55.6828241], + "visueltcenter": [12.59617117, 55.68145466], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191252" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1253", + "nr": "1253", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59118887, 55.67964814, 12.60063804, 55.68700477], + "visueltcenter": [12.59699341, 55.6847672], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 7, + "dagi_id": "191253" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1254", + "nr": "1254", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58903782, 55.68013309, 12.591577, 55.68164495], + "visueltcenter": [12.59034599, 55.68100155], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191254" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1255", + "nr": "1255", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58762027, 55.68074045, 12.58997102, 55.68163225], + "visueltcenter": [12.58863161, 55.68116853], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-17T21:28:49.961Z", + "geo_version": 3, + "dagi_id": "191255" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1256", + "nr": "1256", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59023739, 55.68142306, 12.60165258, 55.68818311], + "visueltcenter": [12.59417151, 55.68579757], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191256" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1257", + "nr": "1257", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59101185, 55.68301766, 12.59518179, 55.6853253], + "visueltcenter": [12.59278982, 55.68446372], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191257" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1259", + "nr": "1259", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59720467, 55.68505059, 12.63582658, 55.71427214], + "visueltcenter": [12.6154165, 55.70489621], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191259" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1260", + "nr": "1260", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58677582, 55.68081387, 12.59428028, 55.68786782], + "visueltcenter": [12.59008573, 55.68378904], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191260" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1261", + "nr": "1261", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58609898, 55.68139507, 12.58788327, 55.68255718], + "visueltcenter": [12.58694628, 55.68191836], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191261" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1263", + "nr": "1263", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59009591, 55.68645458, 12.59861878, 55.6897731], + "visueltcenter": [12.59622407, 55.68876737], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191263" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1264", + "nr": "1264", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58493572, 55.68132674, 12.59161182, 55.69127388], + "visueltcenter": [12.58756966, 55.68424184], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-11-06T22:02:47.414Z", + "geo_ændret": "2024-11-06T22:02:47.414Z", + "geo_version": 8, + "dagi_id": "191264" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1265", + "nr": "1265", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58836492, 55.68390867, 12.59216434, 55.68569855], + "visueltcenter": [12.58943983, 55.68485743], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191265" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1266", + "nr": "1266", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5904098, 55.68749504, 12.59170253, 55.68831851], + "visueltcenter": [12.59098837, 55.68789729], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191266" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1267", + "nr": "1267", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58979507, 55.68794496, 12.59167356, 55.68892491], + "visueltcenter": [12.5903806, 55.68828183], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191267" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1268", + "nr": "1268", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58963864, 55.68849961, 12.5911715, 55.68916348], + "visueltcenter": [12.59030867, 55.68881006], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-11-06T22:02:47.414Z", + "geo_ændret": "2024-11-06T22:02:47.414Z", + "geo_version": 2, + "dagi_id": "191268" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1270", + "nr": "1270", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58735708, 55.68766529, 12.59356225, 55.69160643], + "visueltcenter": [12.5908799, 55.68984032], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1271", + "nr": "1271", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58953309, 55.6890715, 12.59016779, 55.68938522], + "visueltcenter": [12.58981807, 55.68924322], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-15T22:07:36.262Z", + "geo_ændret": "2019-01-15T22:07:36.262Z", + "geo_version": 3, + "dagi_id": "191271" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1300", + "nr": "1300", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58302452, 55.68185731, 12.58909822, 55.68852578], + "visueltcenter": [12.58427444, 55.68266571], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1301", + "nr": "1301", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58454737, 55.68271443, 12.58651714, 55.68376165], + "visueltcenter": [12.58587955, 55.68334448], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-17T21:28:49.961Z", + "geo_version": 2, + "dagi_id": "191301" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1302", + "nr": "1302", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58256612, 55.68262955, 12.58961126, 55.68529226], + "visueltcenter": [12.58409674, 55.68448319], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191302" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1303", + "nr": "1303", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58747758, 55.68569392, 12.58908573, 55.68633788], + "visueltcenter": [12.58837636, 55.68594749], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191303" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1304", + "nr": "1304", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5816758, 55.68218171, 12.58687564, 55.68711005], + "visueltcenter": [12.58306965, 55.68333481], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191304" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1306", + "nr": "1306", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57928022, 55.68254734, 12.58728359, 55.6904331], + "visueltcenter": [12.58135321, 55.68430724], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191306" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1307", + "nr": "1307", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56973261, 55.68465316, 12.58680865, 55.69138973], + "visueltcenter": [12.57998797, 55.68643425], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-03-01T22:01:23.534Z", + "geo_ændret": "2024-03-01T22:01:23.534Z", + "geo_version": 6, + "dagi_id": "191307" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1308", + "nr": "1308", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58214642, 55.6858896, 12.58742165, 55.68716787], + "visueltcenter": [12.58479357, 55.6865329], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191308" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1309", + "nr": "1309", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58248241, 55.68670848, 12.58448065, 55.68780892], + "visueltcenter": [12.58342163, 55.68721135], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191309" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1310", + "nr": "1310", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58281787, 55.68478699, 12.59429639, 55.68802262], + "visueltcenter": [12.59029867, 55.68593955], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1311", + "nr": "1311", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58309726, 55.68639088, 12.5894245, 55.68845151], + "visueltcenter": [12.58380631, 55.68811515], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191311" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1312", + "nr": "1312", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58538181, 55.68703183, 12.58621862, 55.68790185], + "visueltcenter": [12.58583966, 55.68763774], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191312" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1313", + "nr": "1313", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58347673, 55.68671823, 12.58976485, 55.68852257], + "visueltcenter": [12.58894598, 55.68703948], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191313" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1314", + "nr": "1314", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58595996, 55.68720482, 12.58792734, 55.68833007], + "visueltcenter": [12.58633595, 55.68750826], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-04-13T20:29:46.699Z", + "geo_version": 2, + "dagi_id": "191314" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1315", + "nr": "1315", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58728386, 55.68741809, 12.58833582, 55.68783854], + "visueltcenter": [12.58791833, 55.68763127], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191315" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1316", + "nr": "1316", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58167875, 55.68641639, 12.58498786, 55.6896461], + "visueltcenter": [12.58282835, 55.68830711], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191316" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1317", + "nr": "1317", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58075153, 55.68843579, 12.58408891, 55.68952337], + "visueltcenter": [12.58191343, 55.68896717], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191317" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1318", + "nr": "1318", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58380711, 55.68819591, 12.58551291, 55.68880431], + "visueltcenter": [12.58478262, 55.68846582], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191318" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1319", + "nr": "1319", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58387026, 55.68722949, 12.59028994, 55.68899467], + "visueltcenter": [12.58712218, 55.68802871], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191319" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1320", + "nr": "1320", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58594004, 55.68809035, 12.58913844, 55.68902552], + "visueltcenter": [12.58748743, 55.68846691], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1321", + "nr": "1321", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58879468, 55.68768986, 12.58999073, 55.68825183], + "visueltcenter": [12.5895451, 55.68791672], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191321" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1322", + "nr": "1322", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58436116, 55.6880686, 12.59007281, 55.68972024], + "visueltcenter": [12.58942362, 55.68835925], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191322" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1323", + "nr": "1323", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58482119, 55.6893856, 12.58665288, 55.68994689], + "visueltcenter": [12.58573703, 55.68966625], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191323" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1324", + "nr": "1324", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58628348, 55.68854465, 12.58955834, 55.6896173], + "visueltcenter": [12.58712585, 55.68930756], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191324" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1325", + "nr": "1325", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58555643, 55.68894853, 12.58950456, 55.69027876], + "visueltcenter": [12.58847527, 55.68932439], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-17T21:28:49.961Z", + "geo_version": 2, + "dagi_id": "191325" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1326", + "nr": "1326", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58601014, 55.68939286, 12.5891296, 55.6904122], + "visueltcenter": [12.58839238, 55.68962824], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191326" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1327", + "nr": "1327", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58658722, 55.68981117, 12.5881423, 55.69088135], + "visueltcenter": [12.58723576, 55.69037471], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191327" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1328", + "nr": "1328", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58726081, 55.6896226, 12.58893539, 55.69122906], + "visueltcenter": [12.58836924, 55.68991619], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191328" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1329", + "nr": "1329", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58417843, 55.68871528, 12.58599683, 55.6893082], + "visueltcenter": [12.58464108, 55.68914774], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191329" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1350", + "nr": "1350", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57346757, 55.68404226, 12.58758558, 55.69178801], + "visueltcenter": [12.57590522, 55.68659617], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 7, + "dagi_id": "191350" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1352", + "nr": "1352", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5694568, 55.68899094, 12.57396633, 55.69097477], + "visueltcenter": [12.57310725, 55.68939296], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191352" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1353", + "nr": "1353", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56886405, 55.68540212, 12.57572412, 55.68943092], + "visueltcenter": [12.57119575, 55.68704697], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191353" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1354", + "nr": "1354", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56884531, 55.68863768, 12.57347395, 55.69075108], + "visueltcenter": [12.57096165, 55.68980117], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191354" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1355", + "nr": "1355", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5677798, 55.68807042, 12.57298379, 55.69055894], + "visueltcenter": [12.5712291, 55.68871643], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191355" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1356", + "nr": "1356", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56503675, 55.68617153, 12.5694213, 55.68840847], + "visueltcenter": [12.56804206, 55.6871711], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-02T22:13:15.915Z", + "geo_version": 2, + "dagi_id": "191356" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1357", + "nr": "1357", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56477425, 55.6865481, 12.57181365, 55.69147634], + "visueltcenter": [12.56795624, 55.68858347], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191357" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1358", + "nr": "1358", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56505165, 55.67850801, 12.57419554, 55.68490577], + "visueltcenter": [12.56695637, 55.68056747], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191358" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1359", + "nr": "1359", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56338228, 55.68276131, 12.56727007, 55.6840989], + "visueltcenter": [12.56421074, 55.68365009], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191359" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1360", + "nr": "1360", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56356176, 55.68251469, 12.57446489, 55.68672712], + "visueltcenter": [12.56656367, 55.6856827], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191360" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1361", + "nr": "1361", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56710477, 55.68170319, 12.57216315, 55.68514573], + "visueltcenter": [12.56876693, 55.68296065], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191361" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1362", + "nr": "1362", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56696574, 55.68263171, 12.57087356, 55.68539059], + "visueltcenter": [12.56993139, 55.68488443], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191362" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1363", + "nr": "1363", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56443552, 55.68278074, 12.57132596, 55.68572539], + "visueltcenter": [12.56557099, 55.68513437], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191363" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1364", + "nr": "1364", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56316574, 55.67880742, 12.56985414, 55.68596959], + "visueltcenter": [12.56643374, 55.68207564], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191364" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1365", + "nr": "1365", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56376871, 55.68168565, 12.56523431, 55.68251124], + "visueltcenter": [12.56444325, 55.68208169], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191365" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1366", + "nr": "1366", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56076454, 55.68036431, 12.56887141, 55.68653826], + "visueltcenter": [12.56325243, 55.68207959], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191366" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1367", + "nr": "1367", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56103242, 55.68270195, 12.56455196, 55.68395856], + "visueltcenter": [12.56359571, 55.68310746], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191367" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1368", + "nr": "1368", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5613706, 55.68094225, 12.56452727, 55.68225228], + "visueltcenter": [12.56378826, 55.68138249], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191368" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1369", + "nr": "1369", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.55786281, 55.67977809, 12.56416682, 55.68309392], + "visueltcenter": [12.55953017, 55.68214443], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2015-04-09T08:23:44.102Z", + "geo_version": 2, + "dagi_id": "191369" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1370", + "nr": "1370", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56019259, 55.68122335, 12.56540559, 55.6858466], + "visueltcenter": [12.56346092, 55.68484818], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1371", + "nr": "1371", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56291844, 55.68517881, 12.56628547, 55.6868142], + "visueltcenter": [12.56404534, 55.68594651], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191371" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1400", + "nr": "1400", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58601151, 55.66912275, 12.60068949, 55.67535699], + "visueltcenter": [12.59681168, 55.67038519], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1401", + "nr": "1401", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58651728, 55.67141337, 12.59899708, 55.67917106], + "visueltcenter": [12.59566443, 55.67729107], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "191401" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1402", + "nr": "1402", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58297171, 55.67037689, 12.59007366, 55.67623291], + "visueltcenter": [12.58542262, 55.67280147], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191402" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1403", + "nr": "1403", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59248266, 55.67448475, 12.59549007, 55.67641735], + "visueltcenter": [12.5941033, 55.67539344], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191403" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1406", + "nr": "1406", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59233351, 55.67463849, 12.59396399, 55.67570433], + "visueltcenter": [12.59344137, 55.67493602], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191406" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1407", + "nr": "1407", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59214296, 55.67231678, 12.59725353, 55.67523671], + "visueltcenter": [12.59549054, 55.67360101], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-04-29T21:07:33.980Z", + "geo_ændret": "2020-04-29T21:07:33.980Z", + "geo_version": 4, + "dagi_id": "191407" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1408", + "nr": "1408", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58635177, 55.67081545, 12.59335382, 55.67558927], + "visueltcenter": [12.59088619, 55.67363421], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191408" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1409", + "nr": "1409", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58589058, 55.67308171, 12.58861854, 55.67446767], + "visueltcenter": [12.58767981, 55.67355505], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191409" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1410", + "nr": "1410", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59076062, 55.67166109, 12.5915921, 55.67233413], + "visueltcenter": [12.59114295, 55.67196294], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191410" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1411", + "nr": "1411", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5790615, 55.66792267, 12.58988897, 55.67285335], + "visueltcenter": [12.58304583, 55.6706881], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191411" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1412", + "nr": "1412", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58563708, 55.67039265, 12.58639821, 55.67078429], + "visueltcenter": [12.58609487, 55.67059202], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191412" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1413", + "nr": "1413", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58609772, 55.67024813, 12.5874449, 55.67093382], + "visueltcenter": [12.58669684, 55.67064899], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191413" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1414", + "nr": "1414", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58746605, 55.67042967, 12.59418105, 55.67493961], + "visueltcenter": [12.58974986, 55.67225731], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191414" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1415", + "nr": "1415", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58710161, 55.66970474, 12.59832295, 55.67713149], + "visueltcenter": [12.59499761, 55.67444226], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191415" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1416", + "nr": "1416", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5902862, 55.67164716, 12.59623496, 55.6744885], + "visueltcenter": [12.59424032, 55.67286214], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191416" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1417", + "nr": "1417", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59170686, 55.67247443, 12.59302702, 55.67315544], + "visueltcenter": [12.59236256, 55.67274948], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191417" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1418", + "nr": "1418", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58961792, 55.67020318, 12.59217283, 55.67161062], + "visueltcenter": [12.59016855, 55.67133117], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-10T21:36:32.078Z", + "geo_version": 2, + "dagi_id": "191418" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1419", + "nr": "1419", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58829235, 55.67038765, 12.58946366, 55.67075992], + "visueltcenter": [12.58895097, 55.67053449], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191419" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1420", + "nr": "1420", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58815742, 55.66976901, 12.59514035, 55.67409848], + "visueltcenter": [12.59000159, 55.67073872], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191420" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1421", + "nr": "1421", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58794027, 55.67006232, 12.58855678, 55.67054204], + "visueltcenter": [12.58811181, 55.67028252], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191421" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1422", + "nr": "1422", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59021801, 55.66974998, 12.60188534, 55.67792254], + "visueltcenter": [12.60083, 55.67583778], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191422" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1423", + "nr": "1423", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59181276, 55.6702592, 12.5934917, 55.6712016], + "visueltcenter": [12.59282667, 55.67073581], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191423" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1424", + "nr": "1424", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.58672985, 55.66768087, 12.59781161, 55.67265878], + "visueltcenter": [12.59220558, 55.66931315], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191424" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1425", + "nr": "1425", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59308621, 55.67108854, 12.595665, 55.67238369], + "visueltcenter": [12.59425877, 55.67184012], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191425" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1426", + "nr": "1426", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59581125, 55.67153616, 12.59791928, 55.67293417], + "visueltcenter": [12.59670167, 55.67223173], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191426" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1427", + "nr": "1427", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59596537, 55.67473926, 12.59800965, 55.67552429], + "visueltcenter": [12.59740604, 55.67501129], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-21T21:25:41.001Z", + "geo_version": 2, + "dagi_id": "191427" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1428", + "nr": "1428", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5967773, 55.67518288, 12.59896836, 55.67661732], + "visueltcenter": [12.59745699, 55.67551144], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191428" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1429", + "nr": "1429", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59739867, 55.67448637, 12.59963277, 55.67628761], + "visueltcenter": [12.59825398, 55.67527963], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-21T21:25:41.001Z", + "geo_version": 2, + "dagi_id": "191429" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1430", + "nr": "1430", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59767273, 55.67564695, 12.60035858, 55.67779021], + "visueltcenter": [12.59864182, 55.67701184], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191430" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1432", + "nr": "1432", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.60032351, 55.67277968, 12.65955666, 55.71451861], + "visueltcenter": [12.61655877, 55.69425974], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-10-29T22:03:42.263Z", + "geo_ændret": "2024-10-29T22:03:42.263Z", + "geo_version": 13, + "dagi_id": "191432" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1433", + "nr": "1433", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.63246167, 55.66126882, 12.85455136, 55.79485029], + "visueltcenter": [12.72430087, 55.72946145], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191433" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1434", + "nr": "1434", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5993471, 55.67669983, 12.60649704, 55.6838803], + "visueltcenter": [12.60345664, 55.68032633], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 15, + "dagi_id": "191347" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1435", + "nr": "1435", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.60259779, 55.67968762, 12.60726628, 55.68213314], + "visueltcenter": [12.60607236, 55.6803494], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-09-13T21:13:15.692Z", + "geo_ændret": "2019-09-13T21:13:15.692Z", + "geo_version": 2, + "dagi_id": "191501" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1436", + "nr": "1436", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59513385, 55.67445975, 12.60826224, 55.68089874], + "visueltcenter": [12.6035624, 55.6760139], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 15, + "dagi_id": "191502" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1437", + "nr": "1437", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.60018616, 55.67795264, 12.60965891, 55.68437592], + "visueltcenter": [12.60755523, 55.6822005], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191503" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1438", + "nr": "1438", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59720906, 55.67963346, 12.6040237, 55.68616704], + "visueltcenter": [12.60018111, 55.68254869], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191529" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1439", + "nr": "1439", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.60127096, 55.68317852, 12.61328487, 55.69055973], + "visueltcenter": [12.60639558, 55.68671916], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-10-29T22:03:42.263Z", + "geo_ændret": "2024-10-29T22:03:42.263Z", + "geo_version": 11, + "dagi_id": "191530" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1440", + "nr": "1440", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5957347, 55.67034158, 12.6127224, 55.68249361], + "visueltcenter": [12.60137342, 55.67308696], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191534" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1441", + "nr": "1441", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.59842973, 55.66921566, 12.61470114, 55.68388097], + "visueltcenter": [12.6128732, 55.67992992], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "413088" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1450", + "nr": "1450", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57208772, 55.67668453, 12.57408557, 55.67815663], + "visueltcenter": [12.57305928, 55.67728132], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 3, + "dagi_id": "191450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1451", + "nr": "1451", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56868769, 55.67932057, 12.57041523, 55.68091981], + "visueltcenter": [12.56919359, 55.6800785], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191451" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1452", + "nr": "1452", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56760426, 55.67903778, 12.5690292, 55.68006365], + "visueltcenter": [12.56829492, 55.67954104], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191452" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1453", + "nr": "1453", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5664681, 55.67819986, 12.57160818, 55.68049259], + "visueltcenter": [12.57080331, 55.67990502], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191453" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1454", + "nr": "1454", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56819351, 55.67765438, 12.57037837, 55.67905862], + "visueltcenter": [12.56955821, 55.67806442], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191454" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1455", + "nr": "1455", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56695871, 55.67753982, 12.57140034, 55.67944757], + "visueltcenter": [12.57032224, 55.67883409], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191455" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1456", + "nr": "1456", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56803917, 55.67650166, 12.57151195, 55.67873532], + "visueltcenter": [12.56925402, 55.67731979], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191456" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1457", + "nr": "1457", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57094068, 55.67761131, 12.57305085, 55.67870109], + "visueltcenter": [12.57191269, 55.67821919], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191457" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1458", + "nr": "1458", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57014106, 55.67652149, 12.57265142, 55.67766978], + "visueltcenter": [12.57201105, 55.67697626], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191458" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1459", + "nr": "1459", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.56920699, 55.67632584, 12.57292398, 55.67816487], + "visueltcenter": [12.57180355, 55.67753312], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "191459" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1460", + "nr": "1460", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57034884, 55.67624276, 12.57159969, 55.67699689], + "visueltcenter": [12.57083548, 55.67662509], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-01-06T22:03:45.269Z", + "geo_ændret": "2023-01-06T22:03:45.269Z", + "geo_version": 5, + "dagi_id": "191460" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1461", + "nr": "1461", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.5723532, 55.67660092, 12.57325016, 55.67694064], + "visueltcenter": [12.57298975, 55.67681948], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191461" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1462", + "nr": "1462", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57068938, 55.67566694, 12.57239534, 55.67677052], + "visueltcenter": [12.57177767, 55.6762414], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-05T23:22:32.486Z", + "geo_version": 3, + "dagi_id": "191462" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1463", + "nr": "1463", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57101005, 55.67504277, 12.5734033, 55.67647469], + "visueltcenter": [12.57219443, 55.67572208], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191463" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1464", + "nr": "1464", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57215746, 55.6761766, 12.5734553, 55.67681582], + "visueltcenter": [12.5726221, 55.67644962], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-01T21:24:59.627Z", + "geo_version": 2, + "dagi_id": "191464" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1465", + "nr": "1465", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57319673, 55.67590397, 12.57378344, 55.67626596], + "visueltcenter": [12.57342745, 55.67606578], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191465" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1466", + "nr": "1466", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57350527, 55.67614248, 12.57507309, 55.67732864], + "visueltcenter": [12.57412316, 55.67686347], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-08-10T21:01:42.472Z", + "geo_ændret": "2023-08-10T21:01:42.472Z", + "geo_version": 4, + "dagi_id": "191466" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1467", + "nr": "1467", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57343245, 55.67560884, 12.57481296, 55.67641675], + "visueltcenter": [12.57413846, 55.67607304], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-08-10T21:01:42.472Z", + "geo_ændret": "2023-08-10T21:01:42.472Z", + "geo_version": 3, + "dagi_id": "191467" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1468", + "nr": "1468", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57206452, 55.67492407, 12.57453911, 55.675988], + "visueltcenter": [12.57336739, 55.67552423], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-16T23:19:50.845Z", + "geo_version": 4, + "dagi_id": "191468" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1470", + "nr": "1470", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57282482, 55.67437588, 12.57584801, 55.67588898], + "visueltcenter": [12.57386014, 55.67506238], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191470" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1471", + "nr": "1471", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57390246, 55.67378403, 12.57665144, 55.67487031], + "visueltcenter": [12.57499967, 55.67431551], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-11-17T21:28:49.961Z", + "geo_version": 3, + "dagi_id": "191471" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1472", + "nr": "1472", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57534747, 55.6732053, 12.57783236, 55.67424902], + "visueltcenter": [12.57632308, 55.67368537], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191472" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1473", + "nr": "1473", + "navn": "København K", + "stormodtageradresser": null, + "bbox": [12.57727792, 55.67181881, 12.5799941, 55.67304381], + "visueltcenter": [12.57834447, 55.67232734], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191473" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1550", + "nr": "1550", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56621199, 55.67426651, 12.57212996, 55.6771282], + "visueltcenter": [12.56794358, 55.67630637], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1551", + "nr": "1551", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56384617, 55.67826229, 12.56669437, 55.6797345], + "visueltcenter": [12.56484383, 55.67922359], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191551" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1552", + "nr": "1552", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56545235, 55.6715837, 12.57953555, 55.67863065], + "visueltcenter": [12.57367758, 55.67433051], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-08-14T21:12:37.212Z", + "geo_ændret": "2020-08-14T21:12:37.212Z", + "geo_version": 8, + "dagi_id": "191552" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1553", + "nr": "1553", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5626176, 55.66984883, 12.58065759, 55.67991234], + "visueltcenter": [12.56908785, 55.67455675], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-15T22:07:36.262Z", + "geo_ændret": "2019-01-15T22:07:36.262Z", + "geo_version": 4, + "dagi_id": "191553" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1554", + "nr": "1554", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56335069, 55.6762551, 12.56726282, 55.6779435], + "visueltcenter": [12.56487951, 55.67705334], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191554" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1555", + "nr": "1555", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57202608, 55.67373112, 12.57603464, 55.67567774], + "visueltcenter": [12.57512169, 55.674964], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191555" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1556", + "nr": "1556", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57170846, 55.67230805, 12.57436848, 55.67409622], + "visueltcenter": [12.5735107, 55.67354201], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191556" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1557", + "nr": "1557", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57401609, 55.67274934, 12.57533936, 55.67343753], + "visueltcenter": [12.57487219, 55.6731643], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-08-14T21:12:37.212Z", + "geo_ændret": "2020-08-14T21:12:37.212Z", + "geo_version": 3, + "dagi_id": "191557" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1558", + "nr": "1558", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57638616, 55.6716794, 12.57750609, 55.67221902], + "visueltcenter": [12.57714319, 55.67189966], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191558" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1559", + "nr": "1559", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57676186, 55.67099208, 12.57839035, 55.67195349], + "visueltcenter": [12.57764517, 55.67150035], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191559" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1560", + "nr": "1560", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55733634, 55.66074792, 12.57823729, 55.67151288], + "visueltcenter": [12.57076138, 55.66666733], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 10, + "dagi_id": "191560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1561", + "nr": "1561", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55783481, 55.65939367, 12.5685981, 55.66420945], + "visueltcenter": [12.56237688, 55.66088444], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191561" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1562", + "nr": "1562", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.571361, 55.66945212, 12.57630222, 55.67122397], + "visueltcenter": [12.57484744, 55.67042671], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-06T23:17:47.810Z", + "geo_version": 2, + "dagi_id": "191562" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1563", + "nr": "1563", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57322738, 55.67059965, 12.57476236, 55.67108033], + "visueltcenter": [12.57359465, 55.67081742], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191563" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1564", + "nr": "1564", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57368665, 55.67083763, 12.57672942, 55.67272912], + "visueltcenter": [12.57621894, 55.67242943], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191564" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1567", + "nr": "1567", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56992659, 55.66962791, 12.57195687, 55.67061885], + "visueltcenter": [12.57132645, 55.67019634], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-12-14T22:09:35.708Z", + "geo_ændret": "2020-12-14T22:09:35.708Z", + "geo_version": 8, + "dagi_id": "191567" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1568", + "nr": "1568", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56947718, 55.66853601, 12.57380045, 55.67121729], + "visueltcenter": [12.57277693, 55.66908712], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-07-03T21:05:34.440Z", + "geo_ændret": "2019-07-03T21:05:34.440Z", + "geo_version": 7, + "dagi_id": "191568" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1569", + "nr": "1569", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57008817, 55.67090886, 12.57164647, 55.67158982], + "visueltcenter": [12.57067539, 55.67128988], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191569" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1570", + "nr": "1570", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5626593, 55.67258311, 12.56543739, 55.67441659], + "visueltcenter": [12.56449889, 55.67358392], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191570" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1571", + "nr": "1571", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57108771, 55.67005723, 12.57388019, 55.67153871], + "visueltcenter": [12.57232129, 55.67075323], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-12-14T22:09:35.708Z", + "geo_ændret": "2020-12-14T22:09:35.708Z", + "geo_version": 10, + "dagi_id": "191571" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1572", + "nr": "1572", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57242092, 55.67085963, 12.57414354, 55.67197418], + "visueltcenter": [12.5730003, 55.671606], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-11-05T22:14:33.117Z", + "geo_ændret": "2018-11-05T22:14:33.117Z", + "geo_version": 4, + "dagi_id": "191572" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1573", + "nr": "1573", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57265924, 55.67056208, 12.57716778, 55.67248978], + "visueltcenter": [12.57409664, 55.67173669], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-06T23:17:47.810Z", + "geo_version": 2, + "dagi_id": "191573" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1574", + "nr": "1574", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.57122107, 55.67103938, 12.57362927, 55.6727245], + "visueltcenter": [12.57217128, 55.67158961], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-11-05T22:14:33.117Z", + "geo_ændret": "2018-11-05T22:14:33.117Z", + "geo_version": 3, + "dagi_id": "191574" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1575", + "nr": "1575", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56979587, 55.67139152, 12.57188402, 55.67245033], + "visueltcenter": [12.57057649, 55.67200881], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191575" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1576", + "nr": "1576", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56897388, 55.67046376, 12.57142008, 55.67206704], + "visueltcenter": [12.56944432, 55.67113694], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191576" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1577", + "nr": "1577", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55189947, 55.66095635, 12.57324054, 55.674905], + "visueltcenter": [12.56800721, 55.66901439], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 18, + "dagi_id": "191577" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1600", + "nr": "1600", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56024131, 55.67941128, 12.5637744, 55.68094358], + "visueltcenter": [12.56258051, 55.67988681], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1601", + "nr": "1601", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55737126, 55.6745735, 12.5612274, 55.68205242], + "visueltcenter": [12.55937917, 55.67877817], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-10-06T21:04:43.033Z", + "geo_ændret": "2023-10-06T21:04:43.033Z", + "geo_version": 7, + "dagi_id": "191601" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1602", + "nr": "1602", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55771262, 55.67455819, 12.56247248, 55.68069459], + "visueltcenter": [12.5612736, 55.67873082], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 3, + "dagi_id": "191602" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1603", + "nr": "1603", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56157472, 55.67881361, 12.5632226, 55.67964161], + "visueltcenter": [12.56222843, 55.67925094], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191603" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1604", + "nr": "1604", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56006538, 55.67717782, 12.56245446, 55.67815032], + "visueltcenter": [12.5613943, 55.67743294], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191604" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1605", + "nr": "1605", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55997482, 55.67566147, 12.56151826, 55.6763629], + "visueltcenter": [12.56106245, 55.67602364], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-06T23:17:47.810Z", + "geo_version": 2, + "dagi_id": "191605" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1606", + "nr": "1606", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56102069, 55.67417371, 12.56353387, 55.67953239], + "visueltcenter": [12.56232778, 55.67806697], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191606" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1607", + "nr": "1607", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56250287, 55.67724026, 12.56537561, 55.67956887], + "visueltcenter": [12.56377805, 55.67858553], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191607" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1608", + "nr": "1608", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56404899, 55.67550189, 12.56715399, 55.67669716], + "visueltcenter": [12.56532316, 55.67611495], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-15T22:07:36.262Z", + "geo_ændret": "2019-01-15T22:07:36.262Z", + "geo_version": 5, + "dagi_id": "191608" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1609", + "nr": "1609", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56296998, 55.67509885, 12.5661969, 55.67731353], + "visueltcenter": [12.56377996, 55.67579789], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-13T23:24:26.040Z", + "geo_version": 3, + "dagi_id": "191609" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1610", + "nr": "1610", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54969448, 55.67273054, 12.5605934, 55.67592802], + "visueltcenter": [12.55768339, 55.67457821], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-10-06T21:04:43.033Z", + "geo_ændret": "2023-10-06T21:04:43.033Z", + "geo_version": 7, + "dagi_id": "191610" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1611", + "nr": "1611", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56293341, 55.67474109, 12.56476066, 55.67819796], + "visueltcenter": [12.56362751, 55.67518232], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191611" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1612", + "nr": "1612", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56028405, 55.67445137, 12.5636665, 55.67762201], + "visueltcenter": [12.56267131, 55.67560841], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191612" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1613", + "nr": "1613", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56090013, 55.6737241, 12.56247255, 55.67514837], + "visueltcenter": [12.56162653, 55.67452629], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191613" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1614", + "nr": "1614", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5599415, 55.67333981, 12.56136529, 55.67460448], + "visueltcenter": [12.56065848, 55.67414128], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191614" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1615", + "nr": "1615", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55845807, 55.6732233, 12.55976308, 55.67420732], + "visueltcenter": [12.55909001, 55.67390932], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191615" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1616", + "nr": "1616", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55633476, 55.67264647, 12.55801923, 55.67415454], + "visueltcenter": [12.55710699, 55.67309834], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191616" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1617", + "nr": "1617", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55397849, 55.67252681, 12.55513347, 55.67341485], + "visueltcenter": [12.55457903, 55.67294594], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191617" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1618", + "nr": "1618", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5501002, 55.67322919, 12.55202883, 55.67416456], + "visueltcenter": [12.55126144, 55.67382242], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191618" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1619", + "nr": "1619", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54969226, 55.67276284, 12.55058116, 55.67436203], + "visueltcenter": [12.55017806, 55.67376086], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191619" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1620", + "nr": "1620", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53750627, 55.66814199, 12.56824155, 55.67678093], + "visueltcenter": [12.55913327, 55.67264298], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1621", + "nr": "1621", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54694335, 55.67245633, 12.54949806, 55.67326453], + "visueltcenter": [12.54769433, 55.67293333], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191625" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1622", + "nr": "1622", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54506115, 55.67209092, 12.54707502, 55.6727931], + "visueltcenter": [12.54658832, 55.67245693], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "375292" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1623", + "nr": "1623", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54460521, 55.67160424, 12.54584259, 55.67224916], + "visueltcenter": [12.54526736, 55.67193979], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191623" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1624", + "nr": "1624", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54553142, 55.67180427, 12.546499, 55.67243397], + "visueltcenter": [12.54598034, 55.67212888], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "290944" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1631", + "nr": "1631", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55453031, 55.68194576, 12.55628081, 55.68323586], + "visueltcenter": [12.55548923, 55.6825235], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-13T23:24:26.040Z", + "geo_version": 2, + "dagi_id": "375293" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1632", + "nr": "1632", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55409206, 55.68186865, 12.55590853, 55.68371781], + "visueltcenter": [12.55545314, 55.68343153], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-13T23:24:26.040Z", + "geo_version": 2, + "dagi_id": "191643" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1633", + "nr": "1633", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55567955, 55.68190212, 12.55703789, 55.68276664], + "visueltcenter": [12.5564173, 55.68231545], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191645" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1634", + "nr": "1634", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55394691, 55.68151509, 12.55810649, 55.68220664], + "visueltcenter": [12.55549264, 55.68187637], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191648" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1635", + "nr": "1635", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55529144, 55.68202825, 12.55804174, 55.68339674], + "visueltcenter": [12.55627711, 55.68284156], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191635" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1650", + "nr": "1650", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54756424, 55.6667999, 12.56358927, 55.67301058], + "visueltcenter": [12.55197362, 55.66872787], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191650" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1651", + "nr": "1651", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56187014, 55.67050918, 12.56681878, 55.67393005], + "visueltcenter": [12.56525239, 55.67129215], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191651" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1652", + "nr": "1652", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56096987, 55.6702786, 12.56452782, 55.6733482], + "visueltcenter": [12.56197922, 55.67242389], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191652" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1653", + "nr": "1653", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56002902, 55.67079472, 12.56229057, 55.67311162], + "visueltcenter": [12.5609699, 55.67234568], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-06-07T21:08:14.307Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191653" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1654", + "nr": "1654", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55752662, 55.67065827, 12.56174531, 55.67222957], + "visueltcenter": [12.55933466, 55.67158989], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191654" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1655", + "nr": "1655", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55643038, 55.66988499, 12.56022318, 55.67257875], + "visueltcenter": [12.55816022, 55.67121581], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191655" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1656", + "nr": "1656", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55494859, 55.66941199, 12.5590683, 55.67224401], + "visueltcenter": [12.55631521, 55.67137912], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191656" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1657", + "nr": "1657", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55406949, 55.66881765, 12.55786426, 55.67172743], + "visueltcenter": [12.55581577, 55.67050611], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191657" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1658", + "nr": "1658", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5526064, 55.66811931, 12.55706993, 55.67252153], + "visueltcenter": [12.55413977, 55.67049852], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191658" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1659", + "nr": "1659", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55411484, 55.67152558, 12.55506033, 55.67201534], + "visueltcenter": [12.55451216, 55.67182348], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191659" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1660", + "nr": "1660", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55161354, 55.66725623, 12.55430054, 55.67260817], + "visueltcenter": [12.55264927, 55.67089792], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1661", + "nr": "1661", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55117232, 55.66998099, 12.5526202, 55.67258476], + "visueltcenter": [12.55188166, 55.67164674], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191661" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1662", + "nr": "1662", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54955492, 55.66640199, 12.55271509, 55.67267979], + "visueltcenter": [12.55084057, 55.67152277], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191662" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1663", + "nr": "1663", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54867992, 55.66552366, 12.55220292, 55.67245535], + "visueltcenter": [12.54995271, 55.67061559], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191663" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1664", + "nr": "1664", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54877709, 55.67163791, 12.54975801, 55.67228858], + "visueltcenter": [12.54919832, 55.67191845], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191664" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1665", + "nr": "1665", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54696249, 55.665516, 12.55030432, 55.67218268], + "visueltcenter": [12.54858405, 55.67082135], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191665" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1666", + "nr": "1666", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54541825, 55.66893592, 12.55290116, 55.67140265], + "visueltcenter": [12.54734503, 55.66979331], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191666" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1667", + "nr": "1667", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54538612, 55.66873952, 12.54887914, 55.66936331], + "visueltcenter": [12.54621289, 55.66906572], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-16T22:10:42.686Z", + "geo_version": 2, + "dagi_id": "191667" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1668", + "nr": "1668", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54735967, 55.66769665, 12.54861292, 55.66918661], + "visueltcenter": [12.54794234, 55.66882907], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191668" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1669", + "nr": "1669", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54619823, 55.66513266, 12.54850635, 55.66913538], + "visueltcenter": [12.54769264, 55.66573477], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191669" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1670", + "nr": "1670", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54360179, 55.66586685, 12.54809836, 55.66811913], + "visueltcenter": [12.54504302, 55.66709135], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1671", + "nr": "1671", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54443854, 55.66472504, 12.54739067, 55.66908163], + "visueltcenter": [12.54566781, 55.66825809], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 6, + "dagi_id": "191671" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1672", + "nr": "1672", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54574968, 55.66824243, 12.54706408, 55.6688564], + "visueltcenter": [12.54639085, 55.6685544], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191672" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1673", + "nr": "1673", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54580003, 55.66771023, 12.54719714, 55.66832892], + "visueltcenter": [12.5465375, 55.66799575], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191673" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1674", + "nr": "1674", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54087358, 55.66286091, 12.54659482, 55.67162321], + "visueltcenter": [12.54312616, 55.6656097], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 5, + "dagi_id": "191674" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1675", + "nr": "1675", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54636904, 55.66621087, 12.5473361, 55.66673841], + "visueltcenter": [12.54685256, 55.66647464], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191675" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1676", + "nr": "1676", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54778981, 55.66532214, 12.54910961, 55.66702163], + "visueltcenter": [12.54842401, 55.66619152], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191676" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1677", + "nr": "1677", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5464361, 55.66572304, 12.54747973, 55.66628536], + "visueltcenter": [12.54700046, 55.66602386], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191677" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1699", + "nr": "1699", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55883606, 55.66550942, 12.56475127, 55.66918442], + "visueltcenter": [12.56294693, 55.66810542], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-03-26T22:05:46.768Z", + "geo_ændret": "2019-03-26T22:05:46.768Z", + "geo_version": 4, + "dagi_id": "191776" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1700", + "nr": "1700", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55579055, 55.66743617, 12.56368212, 55.67158832], + "visueltcenter": [12.56228976, 55.66964694], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-03-26T22:05:46.768Z", + "geo_ændret": "2019-03-26T22:05:46.768Z", + "geo_version": 4, + "dagi_id": "191700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1701", + "nr": "1701", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56275923, 55.67148978, 12.56381947, 55.67207594], + "visueltcenter": [12.56331688, 55.67179515], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191701" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1702", + "nr": "1702", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56301834, 55.67079098, 12.56447874, 55.67171364], + "visueltcenter": [12.5637674, 55.67134085], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191702" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1703", + "nr": "1703", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56224378, 55.67023062, 12.56370195, 55.67108568], + "visueltcenter": [12.56292145, 55.67056976], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191703" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1704", + "nr": "1704", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5627126, 55.66819655, 12.57287899, 55.67402018], + "visueltcenter": [12.5699623, 55.67305739], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191704" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1705", + "nr": "1705", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54159001, 55.66211232, 12.56495841, 55.66971422], + "visueltcenter": [12.54517056, 55.66349423], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 11, + "dagi_id": "191705" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1706", + "nr": "1706", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55939076, 55.67046, 12.56094029, 55.67116983], + "visueltcenter": [12.55994889, 55.67074811], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191706" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1707", + "nr": "1707", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56034742, 55.6715879, 12.56093686, 55.67205134], + "visueltcenter": [12.56062207, 55.6718825], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191707" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1708", + "nr": "1708", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55683845, 55.66932579, 12.55816585, 55.6699711], + "visueltcenter": [12.55745219, 55.6696213], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191708" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1709", + "nr": "1709", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55336113, 55.66761555, 12.55525359, 55.6694468], + "visueltcenter": [12.55436089, 55.66829956], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191709" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1710", + "nr": "1710", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.56155952, 55.66980786, 12.56350343, 55.67085332], + "visueltcenter": [12.56287023, 55.67015852], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191710" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1711", + "nr": "1711", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55737659, 55.66641965, 12.56182317, 55.67047928], + "visueltcenter": [12.5594416, 55.66770326], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 3, + "dagi_id": "191711" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1712", + "nr": "1712", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55685626, 55.66771592, 12.55858425, 55.66882034], + "visueltcenter": [12.55783183, 55.66837077], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191712" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1714", + "nr": "1714", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5576128, 55.66555675, 12.55974309, 55.66695667], + "visueltcenter": [12.5584376, 55.66603571], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191714" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1715", + "nr": "1715", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55934166, 55.66736756, 12.56241147, 55.66962663], + "visueltcenter": [12.56063662, 55.66870393], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 3, + "dagi_id": "191715" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1716", + "nr": "1716", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55770995, 55.66836953, 12.55978485, 55.66940219], + "visueltcenter": [12.55886941, 55.66884414], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191716" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1717", + "nr": "1717", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55549442, 55.66543632, 12.55889534, 55.6679915], + "visueltcenter": [12.55732037, 55.6670686], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191717" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1718", + "nr": "1718", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55463789, 55.66555522, 12.5575119, 55.66768392], + "visueltcenter": [12.55560361, 55.66711053], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191718" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1719", + "nr": "1719", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55396872, 55.66501027, 12.55700685, 55.66736286], + "visueltcenter": [12.55476615, 55.66698025], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191719" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1720", + "nr": "1720", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53733857, 55.66270469, 12.55628306, 55.66893945], + "visueltcenter": [12.54064325, 55.66359129], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191720" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1721", + "nr": "1721", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54762621, 55.66523171, 12.55799055, 55.66732661], + "visueltcenter": [12.55326244, 55.66624074], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191721" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1722", + "nr": "1722", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55324072, 55.66500321, 12.55610116, 55.66695403], + "visueltcenter": [12.55418453, 55.66657955], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191722" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1723", + "nr": "1723", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5516869, 55.66701261, 12.55328591, 55.66767924], + "visueltcenter": [12.5522664, 55.66726948], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191723" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1724", + "nr": "1724", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55124572, 55.66765547, 12.55299159, 55.66838119], + "visueltcenter": [12.55200311, 55.66809061], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191724" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1725", + "nr": "1725", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55299215, 55.66480529, 12.55515436, 55.6661754], + "visueltcenter": [12.55379172, 55.66565101], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191725" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1726", + "nr": "1726", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55182215, 55.66470209, 12.55399158, 55.66618706], + "visueltcenter": [12.55256569, 55.66564743], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191726" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1727", + "nr": "1727", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.55070743, 55.66451803, 12.55271202, 55.66588032], + "visueltcenter": [12.55157104, 55.66529918], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191727" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1728", + "nr": "1728", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5495978, 55.66427799, 12.55142674, 55.66550816], + "visueltcenter": [12.55064723, 55.66481971], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191728" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1729", + "nr": "1729", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54852916, 55.66413959, 12.54997486, 55.66515936], + "visueltcenter": [12.54915072, 55.66458741], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191729" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1730", + "nr": "1730", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54752891, 55.66393096, 12.5488956, 55.66485272], + "visueltcenter": [12.54822289, 55.66439813], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191730" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1731", + "nr": "1731", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54626122, 55.66376682, 12.54743372, 55.66437929], + "visueltcenter": [12.54688486, 55.66411741], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191731" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1732", + "nr": "1732", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54526936, 55.6635789, 12.54637501, 55.66434113], + "visueltcenter": [12.54573859, 55.66393593], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191732" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1733", + "nr": "1733", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54374535, 55.66346648, 12.54478193, 55.66396596], + "visueltcenter": [12.54431734, 55.66368886], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191733" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1734", + "nr": "1734", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54515029, 55.66497853, 12.54618253, 55.66552735], + "visueltcenter": [12.54568262, 55.66523209], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-14T23:21:45.039Z", + "geo_version": 2, + "dagi_id": "191734" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1735", + "nr": "1735", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54451429, 55.6645331, 12.54603835, 55.66557318], + "visueltcenter": [12.54537668, 55.66479718], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-10T22:10:34.887Z", + "geo_ændret": "2019-01-10T22:10:34.887Z", + "geo_version": 3, + "dagi_id": "191735" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1736", + "nr": "1736", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54313492, 55.66499667, 12.54500765, 55.66570342], + "visueltcenter": [12.54364271, 55.66524968], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-10T22:10:34.887Z", + "geo_ændret": "2019-01-10T22:10:34.887Z", + "geo_version": 3, + "dagi_id": "191736" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1737", + "nr": "1737", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54378453, 55.66437744, 12.54517872, 55.66532215], + "visueltcenter": [12.54447071, 55.66484287], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191737" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1738", + "nr": "1738", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54273411, 55.66419689, 12.54433588, 55.6651467], + "visueltcenter": [12.54375074, 55.66449069], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191738" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1739", + "nr": "1739", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54249235, 55.66412079, 12.54341528, 55.66466716], + "visueltcenter": [12.54299209, 55.664438], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191739" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1749", + "nr": "1749", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53573939, 55.66902225, 12.53780922, 55.67013665], + "visueltcenter": [12.53704741, 55.66952602], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191298" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1750", + "nr": "1750", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53733211, 55.66378776, 12.54084972, 55.67027873], + "visueltcenter": [12.5398063, 55.66769158], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-03-02T22:15:14.069Z", + "geo_ændret": "2020-03-02T22:15:14.069Z", + "geo_version": 3, + "dagi_id": "191750" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1751", + "nr": "1751", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54337332, 55.66939187, 12.54564973, 55.67110942], + "visueltcenter": [12.54477144, 55.67008603], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191751" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1752", + "nr": "1752", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54151709, 55.66947091, 12.54451737, 55.67065863], + "visueltcenter": [12.54294527, 55.67003659], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191752" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1753", + "nr": "1753", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54284083, 55.66929624, 12.54382365, 55.66985408], + "visueltcenter": [12.54335814, 55.66961867], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191753" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1754", + "nr": "1754", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54303078, 55.66837689, 12.54495338, 55.67012061], + "visueltcenter": [12.54411696, 55.66925047], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191754" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1755", + "nr": "1755", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54235329, 55.66926116, 12.54313258, 55.66991], + "visueltcenter": [12.54272296, 55.66967755], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191755" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1756", + "nr": "1756", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54045304, 55.6682865, 12.54334555, 55.67036252], + "visueltcenter": [12.54203009, 55.66900959], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191756" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1757", + "nr": "1757", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53995059, 55.66864038, 12.54144398, 55.66956475], + "visueltcenter": [12.54082339, 55.66915035], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191757" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1758", + "nr": "1758", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54011151, 55.6659992, 12.54414924, 55.6687756], + "visueltcenter": [12.54297343, 55.66758517], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-11-19T22:14:33.184Z", + "geo_ændret": "2019-11-19T22:14:33.184Z", + "geo_version": 2, + "dagi_id": "191758" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1759", + "nr": "1759", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54244298, 55.66794374, 12.54462085, 55.66948499], + "visueltcenter": [12.5432819, 55.66851692], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191759" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1760", + "nr": "1760", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53916551, 55.66499691, 12.54806709, 55.66669306], + "visueltcenter": [12.54546668, 55.66571623], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2019-01-10T22:10:34.887Z", + "geo_ændret": "2019-01-10T22:10:34.887Z", + "geo_version": 4, + "dagi_id": "191760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1761", + "nr": "1761", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53916381, 55.66507141, 12.54231442, 55.66833693], + "visueltcenter": [12.54124611, 55.66772397], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191761" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1762", + "nr": "1762", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53950988, 55.66379944, 12.54167079, 55.66618591], + "visueltcenter": [12.54086863, 55.66555484], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191762" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1763", + "nr": "1763", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54073073, 55.66399549, 12.54271366, 55.66618397], + "visueltcenter": [12.54207733, 55.6656842], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191763" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1764", + "nr": "1764", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53885635, 55.66456319, 12.54258635, 55.66555655], + "visueltcenter": [12.53940436, 55.66497095], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191764" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1765", + "nr": "1765", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53792445, 55.66397081, 12.54019122, 55.66483646], + "visueltcenter": [12.53905783, 55.66440364], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191765" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1766", + "nr": "1766", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.54010244, 55.66394587, 12.54122623, 55.664332], + "visueltcenter": [12.54067769, 55.66414411], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191766" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1770", + "nr": "1770", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53611707, 55.66791763, 12.53990567, 55.66931985], + "visueltcenter": [12.5365578, 55.66822916], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2020-03-02T22:15:14.069Z", + "geo_ændret": "2020-03-02T22:15:14.069Z", + "geo_version": 2, + "dagi_id": "191770" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1771", + "nr": "1771", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53867614, 55.66819065, 12.5396968, 55.66880207], + "visueltcenter": [12.53917356, 55.66852133], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191771" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1772", + "nr": "1772", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53810159, 55.66803697, 12.53910847, 55.66864843], + "visueltcenter": [12.53864545, 55.6682938], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191772" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1773", + "nr": "1773", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53750955, 55.66788102, 12.53852408, 55.66849494], + "visueltcenter": [12.53801681, 55.66818798], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191773" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1774", + "nr": "1774", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53668885, 55.66719348, 12.5399279, 55.66849765], + "visueltcenter": [12.53904722, 55.66797162], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191774" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1775", + "nr": "1775", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.53633215, 55.66757304, 12.53734387, 55.66818758], + "visueltcenter": [12.53683801, 55.66788031], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191775" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1777", + "nr": "1777", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.5368321, 55.66670836, 12.53820304, 55.66834065], + "visueltcenter": [12.53764622, 55.66702322], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191777" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1799", + "nr": "1799", + "navn": "København V", + "stormodtageradresser": null, + "bbox": [12.52685318, 55.66287991, 12.53974527, 55.66980744], + "visueltcenter": [12.53344813, 55.66585361], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191799" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1800", + "nr": "1800", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53112703, 55.6699467, 12.53951205, 55.67167835], + "visueltcenter": [12.53600765, 55.67047098], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1801", + "nr": "1801", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53123601, 55.66785616, 12.53760489, 55.67036062], + "visueltcenter": [12.53414281, 55.6690663], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191801" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1802", + "nr": "1802", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53250544, 55.66910087, 12.53527932, 55.67050244], + "visueltcenter": [12.53457921, 55.67007767], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191802" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1803", + "nr": "1803", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53279869, 55.66960266, 12.53416858, 55.67053288], + "visueltcenter": [12.53340416, 55.66997053], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191803" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1804", + "nr": "1804", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53114539, 55.66878765, 12.53302828, 55.67061203], + "visueltcenter": [12.53225891, 55.67003692], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191804" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1805", + "nr": "1805", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53048803, 55.6678647, 12.53171617, 55.66853356], + "visueltcenter": [12.5311529, 55.66804842], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2018-01-17T22:14:03.693Z", + "geo_version": 2, + "dagi_id": "191805" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1806", + "nr": "1806", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53158833, 55.67178218, 12.53520785, 55.67269377], + "visueltcenter": [12.53424914, 55.6721564], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191806" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1807", + "nr": "1807", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53271199, 55.67077608, 12.53415782, 55.67204214], + "visueltcenter": [12.53331808, 55.67115759], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191807" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1808", + "nr": "1808", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53337504, 55.67104072, 12.53481102, 55.67191328], + "visueltcenter": [12.53426314, 55.67159046], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191808" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1809", + "nr": "1809", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5345564, 55.67070064, 12.53692522, 55.67441679], + "visueltcenter": [12.53554461, 55.6716243], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191809" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1810", + "nr": "1810", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53822347, 55.67015158, 12.54128759, 55.67381504], + "visueltcenter": [12.53960125, 55.67146453], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191810" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1811", + "nr": "1811", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53629081, 55.67223338, 12.53759688, 55.67401639], + "visueltcenter": [12.53677431, 55.6725422], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191811" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1812", + "nr": "1812", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5360374, 55.67051134, 12.53875108, 55.67398038], + "visueltcenter": [12.53698945, 55.67120846], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191812" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1813", + "nr": "1813", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53756893, 55.67028262, 12.53963071, 55.67389477], + "visueltcenter": [12.53865345, 55.67238106], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191813" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1814", + "nr": "1814", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54049374, 55.67104351, 12.54253688, 55.6736416], + "visueltcenter": [12.54130724, 55.67153382], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191814" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1815", + "nr": "1815", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54170515, 55.67212226, 12.54308363, 55.67356427], + "visueltcenter": [12.54237549, 55.6727428], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191815" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1816", + "nr": "1816", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54292343, 55.67234493, 12.54424978, 55.67362131], + "visueltcenter": [12.54338951, 55.67280184], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191816" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1817", + "nr": "1817", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54121665, 55.67139256, 12.54457858, 55.67293519], + "visueltcenter": [12.54298543, 55.6720535], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191817" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1818", + "nr": "1818", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54370382, 55.67201469, 12.54544416, 55.67341423], + "visueltcenter": [12.54488147, 55.67247144], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2024-09-24T21:01:59.353Z", + "geo_ændret": "2024-09-24T21:01:59.353Z", + "geo_version": 3, + "dagi_id": "191818" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1819", + "nr": "1819", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54841623, 55.67267434, 12.55021682, 55.67458632], + "visueltcenter": [12.54936765, 55.67398318], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191819" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1820", + "nr": "1820", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53196642, 55.67198705, 12.5500766, 55.67540515], + "visueltcenter": [12.53462279, 55.67407429], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191820" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1822", + "nr": "1822", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5452084, 55.67229053, 12.54660214, 55.67289829], + "visueltcenter": [12.54608419, 55.67268282], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191822" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1823", + "nr": "1823", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54453537, 55.67256319, 12.54616596, 55.67321527], + "visueltcenter": [12.54538991, 55.67285485], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2024-09-24T21:01:59.353Z", + "geo_ændret": "2024-09-24T21:01:59.353Z", + "geo_version": 2, + "dagi_id": "191823" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1824", + "nr": "1824", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54589833, 55.67340303, 12.54812443, 55.67510493], + "visueltcenter": [12.54712394, 55.67414951], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191824" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1825", + "nr": "1825", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5446783, 55.67382293, 12.54665304, 55.67519312], + "visueltcenter": [12.5454441, 55.67422815], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191825" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1826", + "nr": "1826", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54344935, 55.67383451, 12.54557435, 55.67571592], + "visueltcenter": [12.54450577, 55.67479317], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191826" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1827", + "nr": "1827", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54214795, 55.67366838, 12.54427477, 55.67594832], + "visueltcenter": [12.54312856, 55.67472699], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191827" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1828", + "nr": "1828", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54106652, 55.67405152, 12.54302304, 55.67607858], + "visueltcenter": [12.5419349, 55.67482887], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191828" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1829", + "nr": "1829", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54001809, 55.67414745, 12.54213449, 55.67636401], + "visueltcenter": [12.54143187, 55.67594343], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191829" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1850", + "nr": "1850", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53323743, 55.67354776, 12.55564825, 55.6787422], + "visueltcenter": [12.5362512, 55.67774692], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1851", + "nr": "1851", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53815258, 55.67425819, 12.54100905, 55.6767054], + "visueltcenter": [12.53965438, 55.67572373], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191851" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1852", + "nr": "1852", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53723584, 55.67438844, 12.53941201, 55.67698211], + "visueltcenter": [12.53849568, 55.67648934], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2021-06-23T21:01:34.793Z", + "geo_ændret": "2021-06-23T21:01:34.793Z", + "geo_version": 3, + "dagi_id": "191852" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1853", + "nr": "1853", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53461963, 55.67473862, 12.53788566, 55.67580406], + "visueltcenter": [12.53701022, 55.67529526], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191853" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1854", + "nr": "1854", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53392991, 55.67474827, 12.53570562, 55.67632082], + "visueltcenter": [12.53452691, 55.67515529], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191854" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1855", + "nr": "1855", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53325061, 55.67553081, 12.53828249, 55.67666647], + "visueltcenter": [12.53573489, 55.67620071], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191855" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1856", + "nr": "1856", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53598333, 55.6760465, 12.53806884, 55.67746333], + "visueltcenter": [12.53738999, 55.67661415], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191856" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1857", + "nr": "1857", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53420494, 55.67644603, 12.53711393, 55.67747074], + "visueltcenter": [12.53561489, 55.67693751], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191857" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1860", + "nr": "1860", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53410455, 55.67988945, 12.53871654, 55.68168371], + "visueltcenter": [12.53719762, 55.68109331], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191860" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1861", + "nr": "1861", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53430532, 55.6783989, 12.53557681, 55.68019548], + "visueltcenter": [12.53508153, 55.67979174], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191861" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1862", + "nr": "1862", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5347221, 55.67794226, 12.53714713, 55.68091026], + "visueltcenter": [12.53618519, 55.68004417], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191862" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1863", + "nr": "1863", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53635242, 55.67863917, 12.5387045, 55.68106454], + "visueltcenter": [12.53725843, 55.67918107], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191863" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1864", + "nr": "1864", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53358423, 55.67729045, 12.54209041, 55.67935982], + "visueltcenter": [12.53709225, 55.6783961], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191864" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1865", + "nr": "1865", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5378799, 55.67863863, 12.53904739, 55.67938111], + "visueltcenter": [12.53840772, 55.67906052], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191865" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1866", + "nr": "1866", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53739141, 55.67722833, 12.53916783, 55.6785783], + "visueltcenter": [12.53802154, 55.67777926], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191866" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1867", + "nr": "1867", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5394151, 55.67829106, 12.54042823, 55.67885298], + "visueltcenter": [12.53980769, 55.67856694], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191867" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1868", + "nr": "1868", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53897571, 55.67685946, 12.54121322, 55.67813161], + "visueltcenter": [12.54048726, 55.67769198], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191868" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1870", + "nr": "1870", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53765887, 55.67637149, 12.54786546, 55.68600095], + "visueltcenter": [12.54099176, 55.68052551], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 10, + "dagi_id": "191870" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1871", + "nr": "1871", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53898214, 55.67994324, 12.54876944, 55.68366203], + "visueltcenter": [12.54271496, 55.68208484], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191871" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1872", + "nr": "1872", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54434469, 55.67987673, 12.54651547, 55.68050838], + "visueltcenter": [12.54486513, 55.68027144], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191872" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1873", + "nr": "1873", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5434827, 55.67955436, 12.5457123, 55.68034289], + "visueltcenter": [12.54531212, 55.67981424], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191873" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1874", + "nr": "1874", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54522968, 55.678779, 12.54754239, 55.68047793], + "visueltcenter": [12.546312, 55.6794665], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2021-02-15T22:16:11.159Z", + "geo_ændret": "2021-02-15T22:16:11.159Z", + "geo_version": 3, + "dagi_id": "191874" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1875", + "nr": "1875", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54259004, 55.678007, 12.54750806, 55.67999815], + "visueltcenter": [12.54439633, 55.67914852], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191875" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1876", + "nr": "1876", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54217774, 55.67732622, 12.54669803, 55.67886873], + "visueltcenter": [12.54513765, 55.67796084], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191876" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1877", + "nr": "1877", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54226412, 55.67621172, 12.54446389, 55.6779179], + "visueltcenter": [12.54314122, 55.676822], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191877" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1878", + "nr": "1878", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54351101, 55.67579488, 12.54567206, 55.677692], + "visueltcenter": [12.54447671, 55.67659707], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191878" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1879", + "nr": "1879", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54493535, 55.67552919, 12.55224213, 55.68514764], + "visueltcenter": [12.54791386, 55.67944885], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191879" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1900", + "nr": "1900", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55194775, 55.67363469, 12.55889385, 55.68170341], + "visueltcenter": [12.55571599, 55.67568449], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1901", + "nr": "1901", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54579067, 55.67534759, 12.54710734, 55.67660948], + "visueltcenter": [12.54638197, 55.67596832], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191901" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1902", + "nr": "1902", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54655217, 55.67519446, 12.54996645, 55.67963438], + "visueltcenter": [12.54764912, 55.67688481], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2016-12-14T23:21:45.039Z", + "geo_version": 2, + "dagi_id": "191902" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1903", + "nr": "1903", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54760687, 55.67499307, 12.55095247, 55.67935024], + "visueltcenter": [12.54962625, 55.67760453], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191903" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1904", + "nr": "1904", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54875616, 55.67462838, 12.5525937, 55.67803846], + "visueltcenter": [12.5503761, 55.67662945], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2021-08-18T00:24:02.648Z", + "geo_ændret": "2021-08-18T00:24:02.648Z", + "geo_version": 3, + "dagi_id": "191904" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1905", + "nr": "1905", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54975514, 55.67457564, 12.55202226, 55.67713209], + "visueltcenter": [12.55050195, 55.67515882], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2021-08-18T00:24:02.648Z", + "geo_ændret": "2021-08-18T00:24:02.648Z", + "geo_version": 3, + "dagi_id": "191905" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1906", + "nr": "1906", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55065236, 55.67420798, 12.55216648, 55.67625095], + "visueltcenter": [12.55138892, 55.67534886], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191906" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1908", + "nr": "1908", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55260448, 55.67383841, 12.55459267, 55.67561553], + "visueltcenter": [12.55353922, 55.67446845], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191908" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1909", + "nr": "1909", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55088468, 55.6745147, 12.55447628, 55.6773185], + "visueltcenter": [12.55272852, 55.67558015], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191909" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1910", + "nr": "1910", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54858988, 55.67778189, 12.55830433, 55.68018746], + "visueltcenter": [12.55012682, 55.67957423], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "191910" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1911", + "nr": "1911", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54752994, 55.67696873, 12.55432881, 55.67899864], + "visueltcenter": [12.55287463, 55.67759267], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 3, + "dagi_id": "191911" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1912", + "nr": "1912", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55048503, 55.67814801, 12.55233081, 55.67987545], + "visueltcenter": [12.55170183, 55.67947352], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191912" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1913", + "nr": "1913", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55143624, 55.67776877, 12.55345178, 55.67958746], + "visueltcenter": [12.55215583, 55.67825536], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191913" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1914", + "nr": "1914", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55272409, 55.67754399, 12.55415279, 55.67869926], + "visueltcenter": [12.55360844, 55.67839105], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191914" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1915", + "nr": "1915", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55118085, 55.67812177, 12.55465448, 55.67945337], + "visueltcenter": [12.55191481, 55.67886014], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191915" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1916", + "nr": "1916", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55431325, 55.67698427, 12.55809124, 55.67821986], + "visueltcenter": [12.55696888, 55.67755331], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "191916" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1917", + "nr": "1917", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55426756, 55.67635148, 12.55783684, 55.67736045], + "visueltcenter": [12.55519671, 55.67684523], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191917" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1920", + "nr": "1920", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54853005, 55.67898019, 12.55496656, 55.6808525], + "visueltcenter": [12.54975215, 55.68036477], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "191920" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1921", + "nr": "1921", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55175641, 55.6795836, 12.5538096, 55.68023236], + "visueltcenter": [12.55335595, 55.67989699], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191921" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1922", + "nr": "1922", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55104259, 55.67946621, 12.55488781, 55.68101841], + "visueltcenter": [12.55207833, 55.68060854], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-05-18T21:15:28.822Z", + "geo_ændret": "2018-05-18T21:15:28.822Z", + "geo_version": 2, + "dagi_id": "191922" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1923", + "nr": "1923", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54936582, 55.68067356, 12.55131691, 55.68161521], + "visueltcenter": [12.55021079, 55.6811586], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191923" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1924", + "nr": "1924", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54984711, 55.68031135, 12.55293268, 55.68201047], + "visueltcenter": [12.55169309, 55.68134585], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191924" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1925", + "nr": "1925", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55220288, 55.6800959, 12.55462149, 55.68181527], + "visueltcenter": [12.55346186, 55.68101368], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191925" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1926", + "nr": "1926", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5553425, 55.67950438, 12.55866279, 55.68040221], + "visueltcenter": [12.5563497, 55.68001631], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191926" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1927", + "nr": "1927", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55478385, 55.67888043, 12.55850185, 55.67978468], + "visueltcenter": [12.55644595, 55.67936955], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191927" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1928", + "nr": "1928", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55501865, 55.6782778, 12.55833596, 55.67918752], + "visueltcenter": [12.55637458, 55.67873506], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191928" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1950", + "nr": "1950", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53485035, 55.68091934, 12.54067514, 55.6825972], + "visueltcenter": [12.53569241, 55.68169351], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191950" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1951", + "nr": "1951", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5353871, 55.68165983, 12.53738991, 55.68246673], + "visueltcenter": [12.53659621, 55.68207494], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191951" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1952", + "nr": "1952", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53527326, 55.68182486, 12.53863055, 55.68275303], + "visueltcenter": [12.53583526, 55.68244847], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191952" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1953", + "nr": "1953", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53613153, 55.68217279, 12.53931413, 55.68354105], + "visueltcenter": [12.53719507, 55.68293731], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191953" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1954", + "nr": "1954", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53750205, 55.68252311, 12.54101818, 55.68510625], + "visueltcenter": [12.5391162, 55.68414812], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191954" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1955", + "nr": "1955", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53877541, 55.68249249, 12.54148763, 55.68461379], + "visueltcenter": [12.54040474, 55.6836199], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191955" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1956", + "nr": "1956", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53981626, 55.68231394, 12.54268111, 55.68442446], + "visueltcenter": [12.54129064, 55.6833691], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191956" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1957", + "nr": "1957", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54023337, 55.68199075, 12.5436302, 55.68424304], + "visueltcenter": [12.54256238, 55.68329671], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-11-20T22:13:37.996Z", + "geo_ændret": "2018-11-20T22:13:37.996Z", + "geo_version": 2, + "dagi_id": "191957" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1958", + "nr": "1958", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.53845461, 55.68326847, 12.54658373, 55.68718175], + "visueltcenter": [12.54339865, 55.68501919], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-10-06T21:04:43.033Z", + "geo_ændret": "2023-10-06T21:04:43.033Z", + "geo_version": 10, + "dagi_id": "191958" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1959", + "nr": "1959", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54013601, 55.68491813, 12.54275783, 55.68688129], + "visueltcenter": [12.54131491, 55.68571394], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2021-05-12T07:49:44.686Z", + "geo_ændret": "2021-05-12T07:49:44.686Z", + "geo_version": 5, + "dagi_id": "191959" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1960", + "nr": "1960", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54497206, 55.68366606, 12.55577778, 55.68613097], + "visueltcenter": [12.54803396, 55.68501875], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 6, + "dagi_id": "191960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1961", + "nr": "1961", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54579012, 55.68063433, 12.54821834, 55.68238178], + "visueltcenter": [12.54710267, 55.6819061], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191961" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1962", + "nr": "1962", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54573374, 55.68163568, 12.54933967, 55.68312007], + "visueltcenter": [12.54653218, 55.68262187], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191962" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1963", + "nr": "1963", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54700637, 55.68071575, 12.54903233, 55.68188825], + "visueltcenter": [12.54809396, 55.68129366], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191963" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1964", + "nr": "1964", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.546115, 55.68326298, 12.54936044, 55.68523123], + "visueltcenter": [12.54841915, 55.68439097], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191964" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1965", + "nr": "1965", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54773474, 55.68306331, 12.54880744, 55.68375061], + "visueltcenter": [12.54828201, 55.68343992], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191965" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1966", + "nr": "1966", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54802724, 55.68260296, 12.55219173, 55.68399491], + "visueltcenter": [12.54945981, 55.68336984], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191966" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1967", + "nr": "1967", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54864913, 55.68352026, 12.55081628, 55.68487701], + "visueltcenter": [12.54978855, 55.68419509], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191967" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1970", + "nr": "1970", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.54560694, 55.68104568, 12.55851383, 55.68372546], + "visueltcenter": [12.54880394, 55.68275244], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "191970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1971", + "nr": "1971", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55147594, 55.68360777, 12.55309642, 55.68452788], + "visueltcenter": [12.55227545, 55.68421574], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "191971" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1972", + "nr": "1972", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.5513634, 55.6823251, 12.55386435, 55.68488915], + "visueltcenter": [12.55268155, 55.68366621], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191972" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1973", + "nr": "1973", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55241682, 55.68236607, 12.55526966, 55.6843465], + "visueltcenter": [12.55429159, 55.68367036], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "191973" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/1974", + "nr": "1974", + "navn": "Frederiksberg C", + "stormodtageradresser": null, + "bbox": [12.55318751, 55.68171205, 12.55555052, 55.68388089], + "visueltcenter": [12.55381232, 55.6822106], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "191974" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2000", + "nr": "2000", + "navn": "Frederiksberg", + "stormodtageradresser": null, + "bbox": [12.49027635, 55.66596808, 12.54387063, 55.69871449], + "visueltcenter": [12.51562935, 55.67945641], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 12, + "dagi_id": "192000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2100", + "nr": "2100", + "navn": "København Ø", + "stormodtageradresser": null, + "bbox": [12.5393404, 55.68784134, 12.61013836, 55.72485838], + "visueltcenter": [12.57364633, 55.7109795], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2024-09-17T21:07:39.678Z", + "geo_ændret": "2024-09-17T21:07:39.678Z", + "geo_version": 10, + "dagi_id": "192100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2150", + "nr": "2150", + "navn": "Nordhavn", + "stormodtageradresser": null, + "bbox": [12.58997808, 55.704108, 12.64018556, 55.74496496], + "visueltcenter": [12.61612961, 55.72293927], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "413080" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2200", + "nr": "2200", + "navn": "København N", + "stormodtageradresser": null, + "bbox": [12.5248903, 55.6816636, 12.57220713, 55.71214273], + "visueltcenter": [12.54914572, 55.6940569], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 10, + "dagi_id": "192200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2300", + "nr": "2300", + "navn": "København S", + "stormodtageradresser": null, + "bbox": [12.50581966, 55.60982719, 12.71611239, 55.70883554], + "visueltcenter": [12.6554181, 55.67362511], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0185", + "kode": "0185", + "navn": "Tårnby" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 9, + "dagi_id": "192300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2400", + "nr": "2400", + "navn": "København NV", + "stormodtageradresser": null, + "bbox": [12.49710054, 55.69016217, 12.54778975, 55.72845169], + "visueltcenter": [12.52876704, 55.71256101], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 9, + "dagi_id": "192400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2450", + "nr": "2450", + "navn": "København SV", + "stormodtageradresser": null, + "bbox": [12.49941642, 55.62580603, 12.56551165, 55.66664379], + "visueltcenter": [12.52309722, 55.64077611], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 13, + "dagi_id": "192450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2500", + "nr": "2500", + "navn": "Valby", + "stormodtageradresser": null, + "bbox": [12.47581783, 55.64089399, 12.53191572, 55.67967632], + "visueltcenter": [12.49869399, 55.65941452], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "192500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2600", + "nr": "2600", + "navn": "Glostrup", + "stormodtageradresser": null, + "bbox": [12.36696804, 55.65732844, 12.43412537, 55.71057327], + "visueltcenter": [12.39697754, 55.6741838], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0153", + "kode": "0153", + "navn": "Brøndby" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0161", + "kode": "0161", + "navn": "Glostrup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0165", + "kode": "0165", + "navn": "Albertslund" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 5, + "dagi_id": "192600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2605", + "nr": "2605", + "navn": "Brøndby", + "stormodtageradresser": null, + "bbox": [12.36186355, 55.62717495, 12.46196927, 55.67366986], + "visueltcenter": [12.40439537, 55.64503648], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0153", + "kode": "0153", + "navn": "Brøndby" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0161", + "kode": "0161", + "navn": "Glostrup" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192605" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2610", + "nr": "2610", + "navn": "Rødovre", + "stormodtageradresser": null, + "bbox": [12.42236245, 55.66385152, 12.48270985, 55.71569607], + "visueltcenter": [12.44863533, 55.68182922], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0167", + "kode": "0167", + "navn": "Hvidovre" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0175", + "kode": "0175", + "navn": "Rødovre" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 4, + "dagi_id": "192610" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2620", + "nr": "2620", + "navn": "Albertslund", + "stormodtageradresser": null, + "bbox": [12.30677454, 55.64059508, 12.39688294, 55.71059785], + "visueltcenter": [12.34477556, 55.6869516], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0153", + "kode": "0153", + "navn": "Brøndby" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0161", + "kode": "0161", + "navn": "Glostrup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0165", + "kode": "0165", + "navn": "Albertslund" + } + ], + "ændret": "2023-10-10T21:12:01.972Z", + "geo_ændret": "2023-10-10T21:12:01.972Z", + "geo_version": 4, + "dagi_id": "192620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2625", + "nr": "2625", + "navn": "Vallensbæk", + "stormodtageradresser": null, + "bbox": [12.34005142, 55.6255043, 12.39348859, 55.65682186], + "visueltcenter": [12.36481979, 55.63922355], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0187", + "kode": "0187", + "navn": "Vallensbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192625" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2630", + "nr": "2630", + "navn": "Taastrup", + "stormodtageradresser": null, + "bbox": [12.22298219, 55.63069998, 12.35246466, 55.70917439], + "visueltcenter": [12.28083382, 55.6579409], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0165", + "kode": "0165", + "navn": "Albertslund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0169", + "kode": "0169", + "navn": "Høje-Taastrup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0183", + "kode": "0183", + "navn": "Ishøj" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192630" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2635", + "nr": "2635", + "navn": "Ishøj", + "stormodtageradresser": null, + "bbox": [12.21409981, 55.51700548, 12.44520046, 55.6408744], + "visueltcenter": [12.39483896, 55.58776321], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0183", + "kode": "0183", + "navn": "Ishøj" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "192635" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2640", + "nr": "2640", + "navn": "Hedehusene", + "stormodtageradresser": null, + "bbox": [12.14525663, 55.60379925, 12.245463, 55.7062013], + "visueltcenter": [12.19945854, 55.66357137], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0169", + "kode": "0169", + "navn": "Høje-Taastrup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0183", + "kode": "0183", + "navn": "Ishøj" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0253", + "kode": "0253", + "navn": "Greve" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192640" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2650", + "nr": "2650", + "navn": "Hvidovre", + "stormodtageradresser": null, + "bbox": [12.41229061, 55.51903058, 12.52432726, 55.66644458], + "visueltcenter": [12.46097002, 55.58934868], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0153", + "kode": "0153", + "navn": "Brøndby" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0167", + "kode": "0167", + "navn": "Hvidovre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192650" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2660", + "nr": "2660", + "navn": "Brøndby Strand", + "stormodtageradresser": null, + "bbox": [12.38937473, 55.59119526, 12.45059918, 55.63410063], + "visueltcenter": [12.42233883, 55.61998785], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0153", + "kode": "0153", + "navn": "Brøndby" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0167", + "kode": "0167", + "navn": "Hvidovre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2665", + "nr": "2665", + "navn": "Vallensbæk Strand", + "stormodtageradresser": null, + "bbox": [12.36055835, 55.6032138, 12.41217571, 55.63117919], + "visueltcenter": [12.38841202, 55.61964832], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0187", + "kode": "0187", + "navn": "Vallensbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192665" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2670", + "nr": "2670", + "navn": "Greve", + "stormodtageradresser": null, + "bbox": [12.20047087, 55.4869933, 12.44197192, 55.62378765], + "visueltcenter": [12.3529229, 55.54103195], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0253", + "kode": "0253", + "navn": "Greve" + } + ], + "ændret": "2023-05-15T21:03:24.475Z", + "geo_ændret": "2023-05-15T21:03:24.475Z", + "geo_version": 5, + "dagi_id": "192670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2680", + "nr": "2680", + "navn": "Solrød Strand", + "stormodtageradresser": null, + "bbox": [12.13646941, 55.4740699, 12.37938418, 55.56038585], + "visueltcenter": [12.26072581, 55.5150734], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0269", + "kode": "0269", + "navn": "Solrød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192680" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2690", + "nr": "2690", + "navn": "Karlslunde", + "stormodtageradresser": null, + "bbox": [12.17632813, 55.51991509, 12.32140375, 55.58879774], + "visueltcenter": [12.21374503, 55.5692769], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0253", + "kode": "0253", + "navn": "Greve" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0269", + "kode": "0269", + "navn": "Solrød" + } + ], + "ændret": "2023-05-15T21:03:24.475Z", + "geo_ændret": "2023-05-15T21:03:24.475Z", + "geo_version": 3, + "dagi_id": "192690" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2700", + "nr": "2700", + "navn": "Brønshøj", + "stormodtageradresser": null, + "bbox": [12.45157144, 55.6936924, 12.51853518, 55.72561554], + "visueltcenter": [12.48463422, 55.70964347], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2720", + "nr": "2720", + "navn": "Vanløse", + "stormodtageradresser": null, + "bbox": [12.46136466, 55.67163122, 12.52163525, 55.70133045], + "visueltcenter": [12.48194421, 55.6883311], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0147", + "kode": "0147", + "navn": "Frederiksberg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "192720" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2730", + "nr": "2730", + "navn": "Herlev", + "stormodtageradresser": null, + "bbox": [12.38770445, 55.7068072, 12.46287363, 55.759942], + "visueltcenter": [12.42581802, 55.74057031], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0151", + "kode": "0151", + "navn": "Ballerup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0163", + "kode": "0163", + "navn": "Herlev" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192730" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2740", + "nr": "2740", + "navn": "Skovlunde", + "stormodtageradresser": null, + "bbox": [12.36866168, 55.69628333, 12.42750127, 55.73100744], + "visueltcenter": [12.39724634, 55.71528471], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0151", + "kode": "0151", + "navn": "Ballerup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0163", + "kode": "0163", + "navn": "Herlev" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192740" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2750", + "nr": "2750", + "navn": "Ballerup", + "stormodtageradresser": null, + "bbox": [12.31850847, 55.70170697, 12.41173793, 55.76271478], + "visueltcenter": [12.3638449, 55.73668449], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0151", + "kode": "0151", + "navn": "Ballerup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192750" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2760", + "nr": "2760", + "navn": "Måløv", + "stormodtageradresser": null, + "bbox": [12.26308588, 55.74002576, 12.33864442, 55.7643737], + "visueltcenter": [12.32084626, 55.75323652], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0151", + "kode": "0151", + "navn": "Ballerup" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2765", + "nr": "2765", + "navn": "Smørum", + "stormodtageradresser": null, + "bbox": [12.20560353, 55.69291304, 12.34656161, 55.75363863], + "visueltcenter": [12.28121197, 55.72556424], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192765" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2770", + "nr": "2770", + "navn": "Kastrup", + "stormodtageradresser": null, + "bbox": [12.497591, 55.54861792, 12.89935784, 55.70859573], + "visueltcenter": [12.78698239, 55.63352245], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0185", + "kode": "0185", + "navn": "Tårnby" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "192770" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2791", + "nr": "2791", + "navn": "Dragør", + "stormodtageradresser": null, + "bbox": [12.418205, 55.42586159, 12.79881301, 55.62447352], + "visueltcenter": [12.59121712, 55.5081121], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0155", + "kode": "0155", + "navn": "Dragør" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0185", + "kode": "0185", + "navn": "Tårnby" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192791" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2800", + "nr": "2800", + "navn": "Kongens Lyngby", + "stormodtageradresser": null, + "bbox": [12.41145743, 55.74830002, 12.58343013, 55.81431067], + "visueltcenter": [12.52083673, 55.78572204], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0173", + "kode": "0173", + "navn": "Lyngby-Taarbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "192800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2820", + "nr": "2820", + "navn": "Gentofte", + "stormodtageradresser": null, + "bbox": [12.49741422, 55.73613701, 12.559439, 55.77489768], + "visueltcenter": [12.53343057, 55.75145806], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192820" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2830", + "nr": "2830", + "navn": "Virum", + "stormodtageradresser": null, + "bbox": [12.41449399, 55.77709934, 12.50540496, 55.80630786], + "visueltcenter": [12.46836985, 55.78962271], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0173", + "kode": "0173", + "navn": "Lyngby-Taarbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192830" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2840", + "nr": "2840", + "navn": "Holte", + "stormodtageradresser": null, + "bbox": [12.41158852, 55.79209206, 12.52942107, 55.85211196], + "visueltcenter": [12.48640452, 55.81684549], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0173", + "kode": "0173", + "navn": "Lyngby-Taarbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192840" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2850", + "nr": "2850", + "navn": "Nærum", + "stormodtageradresser": null, + "bbox": [12.50967874, 55.80135061, 12.57204656, 55.83527153], + "visueltcenter": [12.54388723, 55.81751707], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2860", + "nr": "2860", + "navn": "Søborg", + "stormodtageradresser": null, + "bbox": [12.44299453, 55.71481093, 12.52977715, 55.75793061], + "visueltcenter": [12.48425242, 55.73800813], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192860" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2870", + "nr": "2870", + "navn": "Dyssegård", + "stormodtageradresser": null, + "bbox": [12.51640506, 55.72628763, 12.54027449, 55.74150786], + "visueltcenter": [12.527951, 55.73206179], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "401217" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2880", + "nr": "2880", + "navn": "Bagsværd", + "stormodtageradresser": null, + "bbox": [12.41447348, 55.73991836, 12.4819921, 55.77742634], + "visueltcenter": [12.44587672, 55.76191781], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0163", + "kode": "0163", + "navn": "Herlev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0190", + "kode": "0190", + "navn": "Furesø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192880" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2900", + "nr": "2900", + "navn": "Hellerup", + "stormodtageradresser": null, + "bbox": [12.52959474, 55.71943028, 12.60998894, 55.74796667], + "visueltcenter": [12.56946744, 55.73442051], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0101", + "kode": "0101", + "navn": "København" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "192900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2920", + "nr": "2920", + "navn": "Charlottenlund", + "stormodtageradresser": null, + "bbox": [12.5429827, 55.73325617, 12.74509983, 55.7976614], + "visueltcenter": [12.6282041, 55.75754187], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "192920" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2930", + "nr": "2930", + "navn": "Klampenborg", + "stormodtageradresser": null, + "bbox": [12.54626282, 55.75780293, 12.74832925, 55.83121294], + "visueltcenter": [12.62132919, 55.79609961], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0157", + "kode": "0157", + "navn": "Gentofte" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0173", + "kode": "0173", + "navn": "Lyngby-Taarbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "192930" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2942", + "nr": "2942", + "navn": "Skodsborg", + "stormodtageradresser": null, + "bbox": [12.55358686, 55.80368053, 12.70857931, 55.84343755], + "visueltcenter": [12.59260158, 55.82842884], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192942" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2950", + "nr": "2950", + "navn": "Vedbæk", + "stormodtageradresser": null, + "bbox": [12.50306131, 55.8232852, 12.7030598, 55.90219363], + "visueltcenter": [12.64375317, 55.86532817], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0223", + "kode": "0223", + "navn": "Hørsholm" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192950" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2960", + "nr": "2960", + "navn": "Rungsted Kyst", + "stormodtageradresser": null, + "bbox": [12.50660013, 55.85803985, 12.6773178, 55.92930885], + "visueltcenter": [12.54954886, 55.88693173], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0223", + "kode": "0223", + "navn": "Hørsholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "192960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2970", + "nr": "2970", + "navn": "Hørsholm", + "stormodtageradresser": null, + "bbox": [12.38298528, 55.83839351, 12.64726171, 55.93273166], + "visueltcenter": [12.43890506, 55.88126308], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0223", + "kode": "0223", + "navn": "Hørsholm" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2980", + "nr": "2980", + "navn": "Kokkedal", + "stormodtageradresser": null, + "bbox": [12.36327404, 55.88958938, 12.64829635, 55.94439745], + "visueltcenter": [12.45605071, 55.91992432], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0223", + "kode": "0223", + "navn": "Hørsholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192980" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/2990", + "nr": "2990", + "navn": "Nivå", + "stormodtageradresser": null, + "bbox": [12.47527203, 55.90923647, 12.64612626, 55.94771062], + "visueltcenter": [12.51321363, 55.92959715], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "192990" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3000", + "nr": "3000", + "navn": "Helsingør", + "stormodtageradresser": null, + "bbox": [12.47476231, 56.00835031, 12.6613549, 56.08110327], + "visueltcenter": [12.61245096, 56.03943161], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3050", + "nr": "3050", + "navn": "Humlebæk", + "stormodtageradresser": null, + "bbox": [12.47603137, 55.9346529, 12.65289411, 55.98796271], + "visueltcenter": [12.53687938, 55.9604599], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193050" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3060", + "nr": "3060", + "navn": "Espergærde", + "stormodtageradresser": null, + "bbox": [12.51246201, 55.96318117, 12.65641144, 56.02422592], + "visueltcenter": [12.54283631, 55.99425687], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193060" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3070", + "nr": "3070", + "navn": "Snekkersten", + "stormodtageradresser": null, + "bbox": [12.53843766, 55.98707817, 12.65614485, 56.02394415], + "visueltcenter": [12.59499744, 56.00467892], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193070" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3080", + "nr": "3080", + "navn": "Tikøb", + "stormodtageradresser": null, + "bbox": [12.38742425, 56.00260564, 12.49259504, 56.0477676], + "visueltcenter": [12.45560033, 56.02560338], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193080" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3100", + "nr": "3100", + "navn": "Hornbæk", + "stormodtageradresser": null, + "bbox": [12.39633682, 56.03849296, 12.52235716, 56.16071804], + "visueltcenter": [12.45420474, 56.10118532], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3120", + "nr": "3120", + "navn": "Dronningmølle", + "stormodtageradresser": null, + "bbox": [12.35100039, 56.0612942, 12.42107758, 56.14451942], + "visueltcenter": [12.38687452, 56.10714196], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193120" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3140", + "nr": "3140", + "navn": "Ålsgårde", + "stormodtageradresser": null, + "bbox": [12.49218611, 56.05466682, 12.58281066, 56.13110854], + "visueltcenter": [12.5430865, 56.09086037], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193140" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3150", + "nr": "3150", + "navn": "Hellebæk", + "stormodtageradresser": null, + "bbox": [12.52272244, 56.0400907, 12.60984434, 56.09601533], + "visueltcenter": [12.5478008, 56.06020462], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193150" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3200", + "nr": "3200", + "navn": "Helsinge", + "stormodtageradresser": null, + "bbox": [12.07606524, 55.96480636, 12.32011258, 56.08429043], + "visueltcenter": [12.1715219, 56.01099572], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3210", + "nr": "3210", + "navn": "Vejby", + "stormodtageradresser": null, + "bbox": [11.94572308, 56.03381475, 12.20165298, 56.22585257], + "visueltcenter": [12.13066388, 56.09457775], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193210" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3220", + "nr": "3220", + "navn": "Tisvildeleje", + "stormodtageradresser": null, + "bbox": [11.87807319, 56.0186119, 12.13209531, 56.18598666], + "visueltcenter": [11.95917304, 56.12775807], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3230", + "nr": "3230", + "navn": "Græsted", + "stormodtageradresser": null, + "bbox": [11.97277434, 55.99894058, 12.44519285, 56.30373082], + "visueltcenter": [12.06980339, 56.22745639], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3250", + "nr": "3250", + "navn": "Gilleleje", + "stormodtageradresser": null, + "bbox": [12.06677394, 56.06324397, 12.45739001, 56.30153087], + "visueltcenter": [12.29353244, 56.16514414], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3300", + "nr": "3300", + "navn": "Frederiksværk", + "stormodtageradresser": null, + "bbox": [11.89051199, 55.92227578, 12.13761685, 56.11218381], + "visueltcenter": [12.05634805, 55.97774198], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0270", + "kode": "0270", + "navn": "Gribskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3310", + "nr": "3310", + "navn": "Ølsted", + "stormodtageradresser": null, + "bbox": [12.01138866, 55.87784242, 12.12016039, 55.95082022], + "visueltcenter": [12.06925064, 55.91156813], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3320", + "nr": "3320", + "navn": "Skævinge", + "stormodtageradresser": null, + "bbox": [12.08007846, 55.87722109, 12.21415343, 55.97351267], + "visueltcenter": [12.15008815, 55.93559156], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "193320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3330", + "nr": "3330", + "navn": "Gørløse", + "stormodtageradresser": null, + "bbox": [12.16946213, 55.86479963, 12.24966144, 55.91081626], + "visueltcenter": [12.2099944, 55.8837888], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3360", + "nr": "3360", + "navn": "Liseleje", + "stormodtageradresser": null, + "bbox": [11.81173519, 55.99777577, 12.03339448, 56.1270799], + "visueltcenter": [11.87609952, 56.09213437], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193360" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3370", + "nr": "3370", + "navn": "Melby", + "stormodtageradresser": null, + "bbox": [11.92790941, 55.9483716, 12.01066608, 56.0088664], + "visueltcenter": [11.97025413, 55.99124483], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3390", + "nr": "3390", + "navn": "Hundested", + "stormodtageradresser": null, + "bbox": [11.27344353, 55.91112655, 12.14511579, 56.52496644], + "visueltcenter": [11.6705916, 56.26445585], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193390" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3400", + "nr": "3400", + "navn": "Hillerød", + "stormodtageradresser": null, + "bbox": [12.16293165, 55.87200389, 12.40750648, 55.99925729], + "visueltcenter": [12.28696917, 55.92123871], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3450", + "nr": "3450", + "navn": "Allerød", + "stormodtageradresser": null, + "bbox": [12.27134568, 55.83751768, 12.40943755, 55.91439593], + "visueltcenter": [12.33661891, 55.86605512], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3460", + "nr": "3460", + "navn": "Birkerød", + "stormodtageradresser": null, + "bbox": [12.35316744, 55.80847001, 12.48881329, 55.87853836], + "visueltcenter": [12.41757019, 55.84270608], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0190", + "kode": "0190", + "navn": "Furesø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0230", + "kode": "0230", + "navn": "Rudersdal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193460" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3480", + "nr": "3480", + "navn": "Fredensborg", + "stormodtageradresser": null, + "bbox": [12.2823419, 55.92988779, 12.49794228, 56.01969385], + "visueltcenter": [12.40200836, 55.97086354], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193480" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3490", + "nr": "3490", + "navn": "Kvistgård", + "stormodtageradresser": null, + "bbox": [12.43292969, 55.96636792, 12.5304187, 56.03257939], + "visueltcenter": [12.49542003, 55.99928886], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0210", + "kode": "0210", + "navn": "Fredensborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0217", + "kode": "0217", + "navn": "Helsingør" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193490" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3500", + "nr": "3500", + "navn": "Værløse", + "stormodtageradresser": null, + "bbox": [12.29194174, 55.75196492, 12.43017233, 55.80776933], + "visueltcenter": [12.35591788, 55.77912974], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0151", + "kode": "0151", + "navn": "Ballerup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0159", + "kode": "0159", + "navn": "Gladsaxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0173", + "kode": "0173", + "navn": "Lyngby-Taarbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0190", + "kode": "0190", + "navn": "Furesø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3520", + "nr": "3520", + "navn": "Farum", + "stormodtageradresser": null, + "bbox": [12.30725242, 55.79734077, 12.42418534, 55.84425255], + "visueltcenter": [12.35067108, 55.81981968], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0190", + "kode": "0190", + "navn": "Furesø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193520" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3540", + "nr": "3540", + "navn": "Lynge", + "stormodtageradresser": null, + "bbox": [12.20620811, 55.81444702, 12.33596603, 55.88424261], + "visueltcenter": [12.28059858, 55.8397364], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0190", + "kode": "0190", + "navn": "Furesø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193540" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3550", + "nr": "3550", + "navn": "Slangerup", + "stormodtageradresser": null, + "bbox": [12.11731105, 55.80426058, 12.27412542, 55.88651134], + "visueltcenter": [12.17447416, 55.85027208], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0201", + "kode": "0201", + "navn": "Allerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0250", + "kode": "0250", + "navn": "Frederikssund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3600", + "nr": "3600", + "navn": "Frederikssund", + "stormodtageradresser": null, + "bbox": [12.02650865, 55.77375995, 12.15235871, 55.89618284], + "visueltcenter": [12.07923445, 55.85479562], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0219", + "kode": "0219", + "navn": "Hillerød" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0250", + "kode": "0250", + "navn": "Frederikssund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0260", + "kode": "0260", + "navn": "Halsnæs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3630", + "nr": "3630", + "navn": "Jægerspris", + "stormodtageradresser": null, + "bbox": [11.78826282, 55.77579315, 12.07864833, 55.95321859], + "visueltcenter": [11.91680034, 55.86932225], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0250", + "kode": "0250", + "navn": "Frederikssund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "193630" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3650", + "nr": "3650", + "navn": "Ølstykke", + "stormodtageradresser": null, + "bbox": [12.10723215, 55.75521582, 12.2021247, 55.82902311], + "visueltcenter": [12.1609202, 55.78991195], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193650" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3660", + "nr": "3660", + "navn": "Stenløse", + "stormodtageradresser": null, + "bbox": [12.14729127, 55.74268062, 12.33510691, 55.8247117], + "visueltcenter": [12.27836793, 55.80077298], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "193660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3670", + "nr": "3670", + "navn": "Veksø Sjælland", + "stormodtageradresser": null, + "bbox": [12.16620018, 55.71743258, 12.27860512, 55.7986249], + "visueltcenter": [12.23729507, 55.75497247], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0240", + "kode": "0240", + "navn": "Egedal" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3700", + "nr": "3700", + "navn": "Rønne", + "stormodtageradresser": null, + "bbox": [13.94963367, 54.58065045, 14.91352725, 55.21910589], + "visueltcenter": [14.40163467, 54.98495945], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "193700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3720", + "nr": "3720", + "navn": "Aakirkeby", + "stormodtageradresser": null, + "bbox": [14.52093745, 54.52054994, 15.04025414, 55.15499378], + "visueltcenter": [14.7409871, 54.6920138], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "193720" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3730", + "nr": "3730", + "navn": "Nexø", + "stormodtageradresser": null, + "bbox": [14.86701893, 54.51935454, 15.99662167, 55.14296521], + "visueltcenter": [15.39301087, 54.87126103], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193730" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3740", + "nr": "3740", + "navn": "Svaneke", + "stormodtageradresser": null, + "bbox": [15.05554034, 55.0091866, 16.54105056, 55.5918292], + "visueltcenter": [15.67679007, 55.30340399], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193740" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3751", + "nr": "3751", + "navn": "Østermarie", + "stormodtageradresser": null, + "bbox": [14.94468707, 55.07877065, 15.24212038, 55.32885451], + "visueltcenter": [15.02005943, 55.1396331], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193751" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3760", + "nr": "3760", + "navn": "Gudhjem", + "stormodtageradresser": null, + "bbox": [14.82597658, 55.10385041, 15.59285012, 55.69740823], + "visueltcenter": [15.21574747, 55.51191781], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0411", + "kode": "0411", + "navn": "Christiansø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "193760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3770", + "nr": "3770", + "navn": "Allinge", + "stormodtageradresser": null, + "bbox": [14.46291472, 55.20266244, 15.0417672, 55.71507365], + "visueltcenter": [14.76377199, 55.36353136], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "193770" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3782", + "nr": "3782", + "navn": "Klemensker", + "stormodtageradresser": null, + "bbox": [14.75792389, 55.14563014, 14.89093119, 55.22457048], + "visueltcenter": [14.81018781, 55.19264146], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193782" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/3790", + "nr": "3790", + "navn": "Hasle", + "stormodtageradresser": null, + "bbox": [14.26625118, 55.13482795, 14.79847688, 55.33050772], + "visueltcenter": [14.52165638, 55.2284316], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0400", + "kode": "0400", + "navn": "Bornholm" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "193790" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4000", + "nr": "4000", + "navn": "Roskilde", + "stormodtageradresser": null, + "bbox": [11.8990238, 55.57583784, 12.25479624, 55.76445992], + "visueltcenter": [12.06373356, 55.65647451], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0169", + "kode": "0169", + "navn": "Høje-Taastrup" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4030", + "nr": "4030", + "navn": "Tune", + "stormodtageradresser": null, + "bbox": [12.13741376, 55.57643731, 12.22580462, 55.61331939], + "visueltcenter": [12.16990416, 55.59602755], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0253", + "kode": "0253", + "navn": "Greve" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + } + ], + "ændret": "2023-05-15T21:03:24.475Z", + "geo_ændret": "2023-05-15T21:03:24.475Z", + "geo_version": 3, + "dagi_id": "401855" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4040", + "nr": "4040", + "navn": "Jyllinge", + "stormodtageradresser": null, + "bbox": [12.06901761, 55.72206053, 12.13701257, 55.78340278], + "visueltcenter": [12.10404063, 55.75603087], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194040" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4050", + "nr": "4050", + "navn": "Skibby", + "stormodtageradresser": null, + "bbox": [11.82145507, 55.70287803, 12.1106687, 55.81006524], + "visueltcenter": [12.01351904, 55.75873813], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0250", + "kode": "0250", + "navn": "Frederikssund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194050" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4060", + "nr": "4060", + "navn": "Kirke Såby", + "stormodtageradresser": null, + "bbox": [11.77531345, 55.61978226, 11.93929184, 55.68518731], + "visueltcenter": [11.87375746, 55.65437818], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194060" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4070", + "nr": "4070", + "navn": "Kirke Hyllinge", + "stormodtageradresser": null, + "bbox": [11.8101792, 55.66050575, 12.00833299, 55.74826839], + "visueltcenter": [11.92418149, 55.70417096], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194070" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4100", + "nr": "4100", + "navn": "Ringsted", + "stormodtageradresser": null, + "bbox": [11.63694319, 55.35153721, 12.06473784, 55.53251441], + "visueltcenter": [11.82805925, 55.43053197], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4130", + "nr": "4130", + "navn": "Viby Sjælland", + "stormodtageradresser": null, + "bbox": [11.97035533, 55.48957751, 12.07681758, 55.5874193], + "visueltcenter": [12.00904287, 55.55011926], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194130" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4140", + "nr": "4140", + "navn": "Borup", + "stormodtageradresser": null, + "bbox": [11.87775357, 55.45632596, 12.05791871, 55.53417361], + "visueltcenter": [11.97092667, 55.49411646], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194140" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4160", + "nr": "4160", + "navn": "Herlufmagle", + "stormodtageradresser": null, + "bbox": [11.63725709, 55.26949277, 11.85850479, 55.38127701], + "visueltcenter": [11.77284465, 55.32910688], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194160" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4171", + "nr": "4171", + "navn": "Glumsø", + "stormodtageradresser": null, + "bbox": [11.56230226, 55.3221822, 11.77706167, 55.41267025], + "visueltcenter": [11.67300466, 55.36237671], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194171" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4173", + "nr": "4173", + "navn": "Fjenneslev", + "stormodtageradresser": null, + "bbox": [11.60533131, 55.38605621, 11.73172845, 55.4827092], + "visueltcenter": [11.66419067, 55.43261731], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194173" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4174", + "nr": "4174", + "navn": "Jystrup Midtsj", + "stormodtageradresser": null, + "bbox": [11.79559524, 55.49078615, 11.93609918, 55.55610442], + "visueltcenter": [11.85552289, 55.52537395], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194174" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4180", + "nr": "4180", + "navn": "Sorø", + "stormodtageradresser": null, + "bbox": [11.46226014, 55.360438, 11.67960294, 55.53086533], + "visueltcenter": [11.55727004, 55.40880423], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194180" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4190", + "nr": "4190", + "navn": "Munke Bjergby", + "stormodtageradresser": null, + "bbox": [11.4213671, 55.47109979, 11.55525038, 55.52431117], + "visueltcenter": [11.52243487, 55.50160113], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194190" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4200", + "nr": "4200", + "navn": "Slagelse", + "stormodtageradresser": null, + "bbox": [11.04331771, 55.28928227, 11.52905037, 55.50670368], + "visueltcenter": [11.37134678, 55.40887345], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "194200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4220", + "nr": "4220", + "navn": "Korsør", + "stormodtageradresser": null, + "bbox": [10.88067114, 55.24435883, 11.24519266, 55.44271614], + "visueltcenter": [11.02962796, 55.34799675], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4230", + "nr": "4230", + "navn": "Skælskør", + "stormodtageradresser": null, + "bbox": [11.19130838, 55.09668618, 11.52551122, 55.30354252], + "visueltcenter": [11.34912168, 55.17717085], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4241", + "nr": "4241", + "navn": "Vemmelev", + "stormodtageradresser": null, + "bbox": [11.2159486, 55.3228584, 11.30281117, 55.39565061], + "visueltcenter": [11.26373834, 55.36414208], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194241" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4242", + "nr": "4242", + "navn": "Boeslunde", + "stormodtageradresser": null, + "bbox": [11.22020962, 55.27631568, 11.33770633, 55.33122776], + "visueltcenter": [11.26828566, 55.3061459], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194242" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4243", + "nr": "4243", + "navn": "Rude", + "stormodtageradresser": null, + "bbox": [11.42298437, 55.15785387, 11.54221782, 55.26228846], + "visueltcenter": [11.46287897, 55.22423719], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194243" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4244", + "nr": "4244", + "navn": "Agersø", + "stormodtageradresser": null, + "bbox": [11.01585709, 55.1730033, 11.24032041, 55.27984364], + "visueltcenter": [11.12804101, 55.22799697], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377944" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4245", + "nr": "4245", + "navn": "Omø", + "stormodtageradresser": null, + "bbox": [11.03648777, 55.04696777, 11.28041004, 55.18482148], + "visueltcenter": [11.15794643, 55.1182759], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377942" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4250", + "nr": "4250", + "navn": "Fuglebjerg", + "stormodtageradresser": null, + "bbox": [11.45858331, 55.26762408, 11.65951619, 55.3765453], + "visueltcenter": [11.55229442, 55.31864081], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4261", + "nr": "4261", + "navn": "Dalmose", + "stormodtageradresser": null, + "bbox": [11.34827271, 55.23894685, 11.4839543, 55.32327397], + "visueltcenter": [11.42947642, 55.28221993], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194261" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4262", + "nr": "4262", + "navn": "Sandved", + "stormodtageradresser": null, + "bbox": [11.46280462, 55.19672402, 11.58513034, 55.29093627], + "visueltcenter": [11.528121, 55.25079677], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194262" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4270", + "nr": "4270", + "navn": "Høng", + "stormodtageradresser": null, + "bbox": [11.23290983, 55.45996505, 11.37320802, 55.57379434], + "visueltcenter": [11.30548124, 55.50308551], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0330", + "kode": "0330", + "navn": "Slagelse" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4281", + "nr": "4281", + "navn": "Gørlev", + "stormodtageradresser": null, + "bbox": [10.92871704, 55.42891076, 11.29661623, 55.5849127], + "visueltcenter": [11.04711131, 55.51887316], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194281" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4291", + "nr": "4291", + "navn": "Ruds Vedby", + "stormodtageradresser": null, + "bbox": [11.28599202, 55.48779296, 11.46082673, 55.59626304], + "visueltcenter": [11.38504044, 55.55253436], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194291" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4293", + "nr": "4293", + "navn": "Dianalund", + "stormodtageradresser": null, + "bbox": [11.41037955, 55.49350773, 11.54473605, 55.59068425], + "visueltcenter": [11.48228398, 55.53579978], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194293" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4295", + "nr": "4295", + "navn": "Stenlille", + "stormodtageradresser": null, + "bbox": [11.50622666, 55.50248861, 11.63669125, 55.59190219], + "visueltcenter": [11.57749201, 55.55246779], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194295" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4296", + "nr": "4296", + "navn": "Nyrup", + "stormodtageradresser": null, + "bbox": [11.61484383, 55.52345316, 11.6847003, 55.56848874], + "visueltcenter": [11.6485466, 55.54056312], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194296" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4300", + "nr": "4300", + "navn": "Holbæk", + "stormodtageradresser": null, + "bbox": [11.5804923, 55.61930274, 11.82861306, 55.81380458], + "visueltcenter": [11.69985606, 55.73825064], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4305", + "nr": "4305", + "navn": "Orø", + "stormodtageradresser": null, + "bbox": [11.76363159, 55.73307612, 11.8577135, 55.8400409], + "visueltcenter": [11.80968567, 55.78240201], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377940" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4320", + "nr": "4320", + "navn": "Lejre", + "stormodtageradresser": null, + "bbox": [11.90301945, 55.52503479, 12.01369642, 55.63425754], + "visueltcenter": [11.95696429, 55.59456942], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4330", + "nr": "4330", + "navn": "Hvalsø", + "stormodtageradresser": null, + "bbox": [11.79674331, 55.53045752, 11.9363392, 55.63865845], + "visueltcenter": [11.86940589, 55.58583604], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4340", + "nr": "4340", + "navn": "Tølløse", + "stormodtageradresser": null, + "bbox": [11.54018644, 55.57294613, 11.82748822, 55.65548902], + "visueltcenter": [11.74532267, 55.61818163], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194340" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4350", + "nr": "4350", + "navn": "Ugerløse", + "stormodtageradresser": null, + "bbox": [11.57010202, 55.56363607, 11.701564, 55.62621818], + "visueltcenter": [11.64996808, 55.59017034], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194350" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4360", + "nr": "4360", + "navn": "Kirke Eskilstrup", + "stormodtageradresser": null, + "bbox": [11.71701366, 55.53886689, 11.82958177, 55.5948964], + "visueltcenter": [11.78695601, 55.56442046], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194360" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4370", + "nr": "4370", + "navn": "Store Merløse", + "stormodtageradresser": null, + "bbox": [11.64598937, 55.51409393, 11.81478802, 55.5885938], + "visueltcenter": [11.7241173, 55.54054576], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0340", + "kode": "0340", + "navn": "Sorø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4390", + "nr": "4390", + "navn": "Vipperød", + "stormodtageradresser": null, + "bbox": [11.68375221, 55.63521768, 11.81156033, 55.69663826], + "visueltcenter": [11.74969494, 55.66270448], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194390" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4400", + "nr": "4400", + "navn": "Kalundborg", + "stormodtageradresser": null, + "bbox": [10.71128308, 55.56109231, 11.26813541, 55.8676522], + "visueltcenter": [10.97431629, 55.70601705], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4420", + "nr": "4420", + "navn": "Regstrup", + "stormodtageradresser": null, + "bbox": [11.53388774, 55.61208435, 11.66522063, 55.71812081], + "visueltcenter": [11.60711139, 55.66048124], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194420" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4440", + "nr": "4440", + "navn": "Mørkøv", + "stormodtageradresser": null, + "bbox": [11.4085584, 55.57396378, 11.58148119, 55.70277354], + "visueltcenter": [11.49619782, 55.62211279], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194440" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4450", + "nr": "4450", + "navn": "Jyderup", + "stormodtageradresser": null, + "bbox": [11.31321612, 55.57679703, 11.47035503, 55.71566859], + "visueltcenter": [11.38733175, 55.61622153], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4460", + "nr": "4460", + "navn": "Snertinge", + "stormodtageradresser": null, + "bbox": [11.34350158, 55.6784504, 11.42770551, 55.73400129], + "visueltcenter": [11.37072627, 55.6969919], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194460" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4470", + "nr": "4470", + "navn": "Svebølle", + "stormodtageradresser": null, + "bbox": [11.22645192, 55.59782698, 11.36275517, 55.68699949], + "visueltcenter": [11.29429706, 55.65722471], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194470" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4480", + "nr": "4480", + "navn": "Store Fuglede", + "stormodtageradresser": null, + "bbox": [11.07350337, 55.5474048, 11.29230444, 55.60348013], + "visueltcenter": [11.15168308, 55.5741086], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194480" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4490", + "nr": "4490", + "navn": "Jerslev Sjælland", + "stormodtageradresser": null, + "bbox": [11.16933416, 55.57232376, 11.32329868, 55.65960607], + "visueltcenter": [11.23183281, 55.61730235], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194490" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4500", + "nr": "4500", + "navn": "Nykøbing Sj", + "stormodtageradresser": null, + "bbox": [11.43214156, 55.80765998, 11.82484337, 56.11389276], + "visueltcenter": [11.56343652, 55.9928841], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-09-18T21:08:35.430Z", + "geo_ændret": "2023-09-18T21:08:35.430Z", + "geo_version": 3, + "dagi_id": "194500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4520", + "nr": "4520", + "navn": "Svinninge", + "stormodtageradresser": null, + "bbox": [11.4071062, 55.6861426, 11.60166333, 55.77471242], + "visueltcenter": [11.48951817, 55.71737311], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194520" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4532", + "nr": "4532", + "navn": "Gislinge", + "stormodtageradresser": null, + "bbox": [11.51611242, 55.70816882, 11.61571058, 55.76158986], + "visueltcenter": [11.56410432, 55.73610011], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0316", + "kode": "0316", + "navn": "Holbæk" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194532" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4534", + "nr": "4534", + "navn": "Hørve", + "stormodtageradresser": null, + "bbox": [11.32706403, 55.721698, 11.53534091, 55.79128216], + "visueltcenter": [11.40509, 55.76162863], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194534" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4540", + "nr": "4540", + "navn": "Fårevejle", + "stormodtageradresser": null, + "bbox": [11.27881522, 55.76916277, 11.54070632, 55.90166125], + "visueltcenter": [11.37403038, 55.85310811], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194540" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4550", + "nr": "4550", + "navn": "Asnæs", + "stormodtageradresser": null, + "bbox": [11.45032486, 55.77855295, 11.54695615, 55.88674858], + "visueltcenter": [11.49734325, 55.81190532], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4560", + "nr": "4560", + "navn": "Vig", + "stormodtageradresser": null, + "bbox": [11.44947584, 55.79746555, 11.75125451, 55.89151504], + "visueltcenter": [11.56036901, 55.84646728], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4571", + "nr": "4571", + "navn": "Grevinge", + "stormodtageradresser": null, + "bbox": [11.52624111, 55.76608624, 11.68299521, 55.8373433], + "visueltcenter": [11.58697448, 55.79587455], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194571" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4572", + "nr": "4572", + "navn": "Nørre Asmindrup", + "stormodtageradresser": null, + "bbox": [11.55743571, 55.86023306, 11.66531827, 55.89918713], + "visueltcenter": [11.62326767, 55.88038731], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194572" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4573", + "nr": "4573", + "navn": "Højby", + "stormodtageradresser": null, + "bbox": [11.4366698, 55.87318027, 11.63531782, 55.938583], + "visueltcenter": [11.55659445, 55.90779403], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194573" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4581", + "nr": "4581", + "navn": "Rørvig", + "stormodtageradresser": null, + "bbox": [11.64037038, 55.91846645, 11.82308869, 56.08574891], + "visueltcenter": [11.71725292, 56.01043371], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-09-18T21:08:35.430Z", + "geo_ændret": "2023-09-18T21:08:35.430Z", + "geo_version": 3, + "dagi_id": "194581" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4583", + "nr": "4583", + "navn": "Sjællands Odde", + "stormodtageradresser": null, + "bbox": [10.99876819, 55.89504497, 11.48616839, 56.25002296], + "visueltcenter": [11.26204837, 56.08627395], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194583" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4591", + "nr": "4591", + "navn": "Føllenslev", + "stormodtageradresser": null, + "bbox": [11.18024371, 55.69162966, 11.40083544, 55.83806615], + "visueltcenter": [11.27498796, 55.79702076], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0306", + "kode": "0306", + "navn": "Odsherred" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194591" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4592", + "nr": "4592", + "navn": "Sejerø", + "stormodtageradresser": null, + "bbox": [10.86997524, 55.80364153, 11.31789765, 56.088805], + "visueltcenter": [11.03916639, 55.92069678], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "194592" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4593", + "nr": "4593", + "navn": "Eskebjerg", + "stormodtageradresser": null, + "bbox": [11.17886117, 55.67486861, 11.36620805, 55.78619848], + "visueltcenter": [11.23692126, 55.7277303], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0326", + "kode": "0326", + "navn": "Kalundborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194593" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4600", + "nr": "4600", + "navn": "Køge", + "stormodtageradresser": null, + "bbox": [12.05230441, 55.37018231, 12.32941675, 55.5185536], + "visueltcenter": [12.22015308, 55.45527126], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "194600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4621", + "nr": "4621", + "navn": "Gadstrup", + "stormodtageradresser": null, + "bbox": [12.04016291, 55.54493339, 12.19186296, 55.59414733], + "visueltcenter": [12.08017443, 55.5745913], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0350", + "kode": "0350", + "navn": "Lejre" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194621" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4622", + "nr": "4622", + "navn": "Havdrup", + "stormodtageradresser": null, + "bbox": [12.05684828, 55.51563793, 12.18172654, 55.56750698], + "visueltcenter": [12.11265454, 55.54041131], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0269", + "kode": "0269", + "navn": "Solrød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194622" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4623", + "nr": "4623", + "navn": "Lille Skensved", + "stormodtageradresser": null, + "bbox": [12.04617985, 55.47036946, 12.19015237, 55.52884996], + "visueltcenter": [12.08511883, 55.50779016], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0265", + "kode": "0265", + "navn": "Roskilde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0269", + "kode": "0269", + "navn": "Solrød" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "194623" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4632", + "nr": "4632", + "navn": "Bjæverskov", + "stormodtageradresser": null, + "bbox": [11.98386418, 55.41514604, 12.0852994, 55.48303707], + "visueltcenter": [12.02691725, 55.44838852], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194632" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4640", + "nr": "4640", + "navn": "Faxe", + "stormodtageradresser": null, + "bbox": [12.03254935, 55.12689381, 12.29092119, 55.31006772], + "visueltcenter": [12.12411652, 55.2685839], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194640" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4652", + "nr": "4652", + "navn": "Hårlev", + "stormodtageradresser": null, + "bbox": [12.129061, 55.30192576, 12.30793483, 55.39519311], + "visueltcenter": [12.22317915, 55.36245892], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194652" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4653", + "nr": "4653", + "navn": "Karise", + "stormodtageradresser": null, + "bbox": [12.09666619, 55.26301405, 12.28507964, 55.34421269], + "visueltcenter": [12.21696415, 55.29633252], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194653" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4654", + "nr": "4654", + "navn": "Faxe Ladeplads", + "stormodtageradresser": null, + "bbox": [12.10690721, 55.16218812, 12.27143962, 55.24589346], + "visueltcenter": [12.19373813, 55.19490482], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194654" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4660", + "nr": "4660", + "navn": "Store Heddinge", + "stormodtageradresser": null, + "bbox": [12.25318175, 55.14915387, 12.81903682, 55.45924234], + "visueltcenter": [12.51110642, 55.33554618], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4671", + "nr": "4671", + "navn": "Strøby", + "stormodtageradresser": null, + "bbox": [12.2518202, 55.3581441, 12.38270086, 55.4926395], + "visueltcenter": [12.31112895, 55.42088958], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194671" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4672", + "nr": "4672", + "navn": "Klippinge", + "stormodtageradresser": null, + "bbox": [12.27437637, 55.31179762, 12.54627901, 55.49904244], + "visueltcenter": [12.4342892, 55.44595315], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194672" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4673", + "nr": "4673", + "navn": "Rødvig Stevns", + "stormodtageradresser": null, + "bbox": [12.26935751, 55.12671072, 12.6350008, 55.29029088], + "visueltcenter": [12.38750748, 55.20085779], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194673" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4681", + "nr": "4681", + "navn": "Herfølge", + "stormodtageradresser": null, + "bbox": [12.06087758, 55.37511149, 12.17075083, 55.44186664], + "visueltcenter": [12.14194267, 55.41715543], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194681" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4682", + "nr": "4682", + "navn": "Tureby", + "stormodtageradresser": null, + "bbox": [11.9956202, 55.30623186, 12.15727819, 55.41915075], + "visueltcenter": [12.08719823, 55.38830546], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0259", + "kode": "0259", + "navn": "Køge" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0336", + "kode": "0336", + "navn": "Stevns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194682" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4683", + "nr": "4683", + "navn": "Rønnede", + "stormodtageradresser": null, + "bbox": [11.96805487, 55.20153455, 12.07511594, 55.29090725], + "visueltcenter": [12.02277028, 55.23758668], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194683" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4684", + "nr": "4684", + "navn": "Holmegaard", + "stormodtageradresser": null, + "bbox": [11.77354366, 55.21266158, 11.98661148, 55.30321543], + "visueltcenter": [11.86408266, 55.25979308], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194684" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4690", + "nr": "4690", + "navn": "Haslev", + "stormodtageradresser": null, + "bbox": [11.81687533, 55.2392304, 12.10289657, 55.40654498], + "visueltcenter": [11.95519764, 55.32031014], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0329", + "kode": "0329", + "navn": "Ringsted" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194690" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4700", + "nr": "4700", + "navn": "Næstved", + "stormodtageradresser": null, + "bbox": [11.50453782, 55.10457009, 11.94538049, 55.31233942], + "visueltcenter": [11.77357353, 55.19504272], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4720", + "nr": "4720", + "navn": "Præstø", + "stormodtageradresser": null, + "bbox": [11.90462544, 55.04429036, 12.34023291, 55.17431738], + "visueltcenter": [12.19166049, 55.12208613], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194720" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4733", + "nr": "4733", + "navn": "Tappernøje", + "stormodtageradresser": null, + "bbox": [11.89637944, 55.13011961, 12.06159412, 55.22673914], + "visueltcenter": [11.98569733, 55.18127292], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0320", + "kode": "0320", + "navn": "Faxe" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194733" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4735", + "nr": "4735", + "navn": "Mern", + "stormodtageradresser": null, + "bbox": [11.97984139, 55.00731429, 12.16980142, 55.07302334], + "visueltcenter": [12.06283657, 55.04277496], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194735" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4736", + "nr": "4736", + "navn": "Karrebæksminde", + "stormodtageradresser": null, + "bbox": [11.56474807, 55.11927567, 11.71961267, 55.2159652], + "visueltcenter": [11.6361743, 55.15521424], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194736" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4750", + "nr": "4750", + "navn": "Lundby", + "stormodtageradresser": null, + "bbox": [11.64453255, 55.05961193, 11.98269051, 55.16178797], + "visueltcenter": [11.78064612, 55.10685595], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0370", + "kode": "0370", + "navn": "Næstved" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194750" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4760", + "nr": "4760", + "navn": "Vordingborg", + "stormodtageradresser": null, + "bbox": [11.47912842, 54.95363251, 12.02140031, 55.12885118], + "visueltcenter": [11.8960716, 55.02464842], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "194760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4771", + "nr": "4771", + "navn": "Kalvehave", + "stormodtageradresser": null, + "bbox": [12.10076965, 54.97782723, 12.25401876, 55.03866964], + "visueltcenter": [12.15645358, 55.00889353], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194771" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4772", + "nr": "4772", + "navn": "Langebæk", + "stormodtageradresser": null, + "bbox": [12.03271902, 54.93814666, 12.14691512, 55.02755594], + "visueltcenter": [12.08817698, 54.99961116], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194772" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4773", + "nr": "4773", + "navn": "Stensved", + "stormodtageradresser": null, + "bbox": [11.98043721, 54.94512264, 12.07614206, 55.02249549], + "visueltcenter": [12.03439585, 54.97060588], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194773" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4780", + "nr": "4780", + "navn": "Stege", + "stormodtageradresser": null, + "bbox": [12.09566568, 54.81312983, 12.45434224, 55.1473341], + "visueltcenter": [12.31627561, 54.9362949], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194780" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4791", + "nr": "4791", + "navn": "Borre", + "stormodtageradresser": null, + "bbox": [12.38194941, 54.71565304, 13.16063771, 55.17531285], + "visueltcenter": [12.7284169, 54.97429881], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194791" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4792", + "nr": "4792", + "navn": "Askeby", + "stormodtageradresser": null, + "bbox": [12.07164623, 54.70131216, 12.64351, 54.94490822], + "visueltcenter": [12.52545007, 54.7375487], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194792" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4793", + "nr": "4793", + "navn": "Bogø By", + "stormodtageradresser": null, + "bbox": [11.95310641, 54.90000587, 12.10340292, 54.96188712], + "visueltcenter": [12.05993905, 54.92382082], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0390", + "kode": "0390", + "navn": "Vordingborg" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "194793" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4800", + "nr": "4800", + "navn": "Nykøbing F", + "stormodtageradresser": null, + "bbox": [11.78074953, 54.68397754, 12.28501423, 54.84809627], + "visueltcenter": [11.90198993, 54.7930621], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4840", + "nr": "4840", + "navn": "Nørre Alslev", + "stormodtageradresser": null, + "bbox": [11.62702086, 54.83324047, 11.98798467, 55.00669832], + "visueltcenter": [11.78722678, 54.93527293], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194840" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4850", + "nr": "4850", + "navn": "Stubbekøbing", + "stormodtageradresser": null, + "bbox": [11.91093913, 54.66232452, 12.53669731, 54.94211469], + "visueltcenter": [12.41175242, 54.71290684], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4862", + "nr": "4862", + "navn": "Guldborg", + "stormodtageradresser": null, + "bbox": [11.56556843, 54.81783417, 11.81353908, 54.94927886], + "visueltcenter": [11.62528305, 54.90483893], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194862" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4863", + "nr": "4863", + "navn": "Eskilstrup", + "stormodtageradresser": null, + "bbox": [11.79250455, 54.82343601, 11.99434121, 54.88555738], + "visueltcenter": [11.90575722, 54.86008913], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194863" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4871", + "nr": "4871", + "navn": "Horbelev", + "stormodtageradresser": null, + "bbox": [11.97441943, 54.63430027, 12.43158572, 54.85755681], + "visueltcenter": [12.29995982, 54.69990623], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194871" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4872", + "nr": "4872", + "navn": "Idestrup", + "stormodtageradresser": null, + "bbox": [11.92421331, 54.61449087, 12.38984602, 54.76121633], + "visueltcenter": [12.11248046, 54.70210497], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194872" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4873", + "nr": "4873", + "navn": "Væggerløse", + "stormodtageradresser": null, + "bbox": [11.83247645, 54.60289563, 12.3656361, 54.74330809], + "visueltcenter": [11.98479974, 54.66359732], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194873" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4874", + "nr": "4874", + "navn": "Gedser", + "stormodtageradresser": null, + "bbox": [11.66819743, 54.3457944, 12.35925793, 54.66957705], + "visueltcenter": [11.9502463, 54.49608541], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194874" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4880", + "nr": "4880", + "navn": "Nysted", + "stormodtageradresser": null, + "bbox": [11.61989533, 54.53151447, 11.86866085, 54.74177049], + "visueltcenter": [11.74490279, 54.62941506], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194880" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4891", + "nr": "4891", + "navn": "Toreby L", + "stormodtageradresser": null, + "bbox": [11.70920334, 54.70978785, 11.84873194, 54.80812567], + "visueltcenter": [11.77556621, 54.7578349], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194891" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4892", + "nr": "4892", + "navn": "Kettinge", + "stormodtageradresser": null, + "bbox": [11.66671214, 54.67465299, 11.87409961, 54.73649171], + "visueltcenter": [11.74606046, 54.70725618], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194892" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4894", + "nr": "4894", + "navn": "Øster Ulslev", + "stormodtageradresser": null, + "bbox": [11.54957462, 54.61041666, 11.66071143, 54.74337278], + "visueltcenter": [11.60726017, 54.68554952], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194894" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4895", + "nr": "4895", + "navn": "Errindlev", + "stormodtageradresser": null, + "bbox": [11.44836265, 54.61290029, 11.6025389, 54.69085672], + "visueltcenter": [11.53487222, 54.63787516], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194895" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4900", + "nr": "4900", + "navn": "Nakskov", + "stormodtageradresser": null, + "bbox": [10.86109654, 54.62906422, 11.26483605, 55.0085531], + "visueltcenter": [10.98835691, 54.75748092], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4912", + "nr": "4912", + "navn": "Harpelunde", + "stormodtageradresser": null, + "bbox": [10.91755223, 54.81581078, 11.11423927, 54.97234099], + "visueltcenter": [10.98695965, 54.90510445], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194912" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4913", + "nr": "4913", + "navn": "Horslunde", + "stormodtageradresser": null, + "bbox": [11.024166, 54.8745413, 11.35203367, 55.05523274], + "visueltcenter": [11.20918569, 54.96838447], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194913" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4920", + "nr": "4920", + "navn": "Søllested", + "stormodtageradresser": null, + "bbox": [11.20415274, 54.73242534, 11.38480975, 54.85633135], + "visueltcenter": [11.29197531, 54.79935911], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194920" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4930", + "nr": "4930", + "navn": "Maribo", + "stormodtageradresser": null, + "bbox": [11.33945561, 54.71620321, 11.60356659, 54.85103243], + "visueltcenter": [11.49815546, 54.76659931], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194930" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4941", + "nr": "4941", + "navn": "Bandholm", + "stormodtageradresser": null, + "bbox": [11.40371497, 54.80405975, 11.5418989, 54.88272186], + "visueltcenter": [11.49059609, 54.83767284], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194941" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4942", + "nr": "4942", + "navn": "Askø", + "stormodtageradresser": null, + "bbox": [11.41422487, 54.86043159, 11.5788727, 54.93799936], + "visueltcenter": [11.5111678, 54.89908661], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377946" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4943", + "nr": "4943", + "navn": "Torrig L", + "stormodtageradresser": null, + "bbox": [11.18318189, 54.8764049, 11.50560836, 55.11859005], + "visueltcenter": [11.36808859, 55.05662783], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194943" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4944", + "nr": "4944", + "navn": "Fejø", + "stormodtageradresser": null, + "bbox": [11.32629219, 54.89815774, 11.5110907, 55.01172543], + "visueltcenter": [11.4069268, 54.95857211], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "194944" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4945", + "nr": "4945", + "navn": "Femø", + "stormodtageradresser": null, + "bbox": [11.43558864, 54.91693046, 11.6680162, 55.06913774], + "visueltcenter": [11.56847203, 54.9844243], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-03-01T22:16:27.696Z", + "geo_version": 1, + "dagi_id": "377871" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4951", + "nr": "4951", + "navn": "Nørreballe", + "stormodtageradresser": null, + "bbox": [11.39855664, 54.79218416, 11.46405785, 54.84094833], + "visueltcenter": [11.4281128, 54.81506841], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194951" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4952", + "nr": "4952", + "navn": "Stokkemarke", + "stormodtageradresser": null, + "bbox": [11.30788055, 54.80624479, 11.43380636, 54.90223663], + "visueltcenter": [11.37909951, 54.84533107], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194952" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4953", + "nr": "4953", + "navn": "Vesterborg", + "stormodtageradresser": null, + "bbox": [11.23017428, 54.8351371, 11.41222096, 54.90672926], + "visueltcenter": [11.28637518, 54.863378], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194953" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4960", + "nr": "4960", + "navn": "Holeby", + "stormodtageradresser": null, + "bbox": [11.42347005, 54.65546148, 11.5752407, 54.7345553], + "visueltcenter": [11.53543477, 54.70172856], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4970", + "nr": "4970", + "navn": "Rødby", + "stormodtageradresser": null, + "bbox": [11.19346774, 54.36202717, 11.75325031, 54.77747932], + "visueltcenter": [11.57693074, 54.53635729], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "194970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4983", + "nr": "4983", + "navn": "Dannemare", + "stormodtageradresser": null, + "bbox": [11.07111474, 54.6053587, 11.29017951, 54.80757216], + "visueltcenter": [11.17254811, 54.71726169], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0360", + "kode": "0360", + "navn": "Lolland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "194983" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/4990", + "nr": "4990", + "navn": "Sakskøbing", + "stormodtageradresser": null, + "bbox": [11.5155207, 54.71487463, 11.80302656, 54.89001465], + "visueltcenter": [11.63568865, 54.8143415], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0376", + "kode": "0376", + "navn": "Guldborgsund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "194990" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5000", + "nr": "5000", + "navn": "Odense C", + "stormodtageradresser": null, + "bbox": [10.34894851, 55.37338238, 10.45288809, 55.47000409], + "visueltcenter": [10.39174411, 55.403021], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5200", + "nr": "5200", + "navn": "Odense V", + "stormodtageradresser": null, + "bbox": [10.22552078, 55.37416867, 10.36602287, 55.41778588], + "visueltcenter": [10.32843174, 55.39401435], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5210", + "nr": "5210", + "navn": "Odense NV", + "stormodtageradresser": null, + "bbox": [10.22051547, 55.39934173, 10.36366466, 55.44545331], + "visueltcenter": [10.30695242, 55.41754658], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 4, + "dagi_id": "195210" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5220", + "nr": "5220", + "navn": "Odense SØ", + "stormodtageradresser": null, + "bbox": [10.41236214, 55.30982558, 10.57878526, 55.40159995], + "visueltcenter": [10.49825565, 55.34929575], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5230", + "nr": "5230", + "navn": "Odense M", + "stormodtageradresser": null, + "bbox": [10.37139745, 55.36272641, 10.44126743, 55.39376747], + "visueltcenter": [10.4114235, 55.37859541], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5240", + "nr": "5240", + "navn": "Odense NØ", + "stormodtageradresser": null, + "bbox": [10.41659152, 55.38825395, 10.50571224, 55.45802817], + "visueltcenter": [10.44332209, 55.42123207], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195240" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5250", + "nr": "5250", + "navn": "Odense SV", + "stormodtageradresser": null, + "bbox": [10.22428578, 55.30973897, 10.38419661, 55.3880061], + "visueltcenter": [10.29791607, 55.35251254], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5260", + "nr": "5260", + "navn": "Odense S", + "stormodtageradresser": null, + "bbox": [10.27862785, 55.28636361, 10.45943732, 55.3730708], + "visueltcenter": [10.39917484, 55.34939755], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195260" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5270", + "nr": "5270", + "navn": "Odense N", + "stormodtageradresser": null, + "bbox": [10.25488304, 55.41128817, 10.44122465, 55.48351107], + "visueltcenter": [10.35714765, 55.44966319], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5290", + "nr": "5290", + "navn": "Marslev", + "stormodtageradresser": null, + "bbox": [10.47845998, 55.36105566, 10.57923117, 55.42646868], + "visueltcenter": [10.53251585, 55.396433], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195290" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5300", + "nr": "5300", + "navn": "Kerteminde", + "stormodtageradresser": null, + "bbox": [10.54283312, 55.38593584, 10.96086465, 55.61098116], + "visueltcenter": [10.8508032, 55.49807432], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5320", + "nr": "5320", + "navn": "Agedrup", + "stormodtageradresser": null, + "bbox": [10.45857958, 55.40907488, 10.52441299, 55.45533453], + "visueltcenter": [10.48909454, 55.43442698], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5330", + "nr": "5330", + "navn": "Munkebo", + "stormodtageradresser": null, + "bbox": [10.45321724, 55.4152277, 10.59363754, 55.50316933], + "visueltcenter": [10.53070411, 55.46833207], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5350", + "nr": "5350", + "navn": "Rynkeby", + "stormodtageradresser": null, + "bbox": [10.57944869, 55.3861875, 10.6483297, 55.42318684], + "visueltcenter": [10.62525952, 55.40654304], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195350" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5370", + "nr": "5370", + "navn": "Mesinge", + "stormodtageradresser": null, + "bbox": [10.54820767, 55.46875732, 10.70704138, 55.55280187], + "visueltcenter": [10.64470255, 55.48986232], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5380", + "nr": "5380", + "navn": "Dalby", + "stormodtageradresser": null, + "bbox": [10.61904763, 55.49833066, 10.75892342, 55.53906668], + "visueltcenter": [10.7017613, 55.51715531], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195380" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5390", + "nr": "5390", + "navn": "Martofte", + "stormodtageradresser": null, + "bbox": [10.47680669, 55.52051353, 10.82357162, 55.70054676], + "visueltcenter": [10.65770823, 55.61575822], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195390" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5400", + "nr": "5400", + "navn": "Bogense", + "stormodtageradresser": null, + "bbox": [9.92173145, 55.50078647, 10.30135193, 55.71403232], + "visueltcenter": [10.15483531, 55.6129967], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5450", + "nr": "5450", + "navn": "Otterup", + "stormodtageradresser": null, + "bbox": [10.23750958, 55.45606903, 10.57492281, 55.69021035], + "visueltcenter": [10.41038685, 55.56662852], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5462", + "nr": "5462", + "navn": "Morud", + "stormodtageradresser": null, + "bbox": [10.12706576, 55.40501719, 10.26032701, 55.46790227], + "visueltcenter": [10.19234031, 55.43415758], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 4, + "dagi_id": "195462" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5463", + "nr": "5463", + "navn": "Harndrup", + "stormodtageradresser": null, + "bbox": [9.9742564, 55.42429526, 10.08084538, 55.48845446], + "visueltcenter": [10.02916475, 55.45477943], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195463" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5464", + "nr": "5464", + "navn": "Brenderup Fyn", + "stormodtageradresser": null, + "bbox": [9.91037867, 55.45537677, 10.04003937, 55.56239716], + "visueltcenter": [9.98162512, 55.49127877], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195464" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5466", + "nr": "5466", + "navn": "Asperup", + "stormodtageradresser": null, + "bbox": [9.84331833, 55.47010561, 9.95530887, 55.54626475], + "visueltcenter": [9.90219075, 55.50180178], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195466" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5471", + "nr": "5471", + "navn": "Søndersø", + "stormodtageradresser": null, + "bbox": [10.02742138, 55.43905083, 10.31194488, 55.55478838], + "visueltcenter": [10.08371535, 55.48691259], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195471" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5474", + "nr": "5474", + "navn": "Veflinge", + "stormodtageradresser": null, + "bbox": [10.09262682, 55.42401062, 10.17948575, 55.49508369], + "visueltcenter": [10.14425746, 55.46255574], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195474" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5485", + "nr": "5485", + "navn": "Skamby", + "stormodtageradresser": null, + "bbox": [10.23262778, 55.49072326, 10.32977428, 55.54166512], + "visueltcenter": [10.26859858, 55.51969426], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195485" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5491", + "nr": "5491", + "navn": "Blommenslyst", + "stormodtageradresser": null, + "bbox": [10.18231238, 55.35028109, 10.2977239, 55.41956283], + "visueltcenter": [10.22531693, 55.38883518], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195491" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5492", + "nr": "5492", + "navn": "Vissenbjerg", + "stormodtageradresser": null, + "bbox": [10.06389252, 55.35515908, 10.20661679, 55.43185776], + "visueltcenter": [10.13229762, 55.39228422], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0461", + "kode": "0461", + "navn": "Odense" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195492" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5500", + "nr": "5500", + "navn": "Middelfart", + "stormodtageradresser": null, + "bbox": [9.65350407, 55.44158204, 9.93064539, 55.58790511], + "visueltcenter": [9.78489314, 55.48934885], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5540", + "nr": "5540", + "navn": "Ullerslev", + "stormodtageradresser": null, + "bbox": [10.60112687, 55.2912709, 10.82547927, 55.44805605], + "visueltcenter": [10.67264084, 55.38540272], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195540" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5550", + "nr": "5550", + "navn": "Langeskov", + "stormodtageradresser": null, + "bbox": [10.54144269, 55.32089847, 10.64591939, 55.39414134], + "visueltcenter": [10.58946818, 55.36672658], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0440", + "kode": "0440", + "navn": "Kerteminde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5560", + "nr": "5560", + "navn": "Aarup", + "stormodtageradresser": null, + "bbox": [9.92330884, 55.32689631, 10.16154205, 55.44645544], + "visueltcenter": [10.03851749, 55.37369367], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0480", + "kode": "0480", + "navn": "Nordfyns" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5580", + "nr": "5580", + "navn": "Nørre Aaby", + "stormodtageradresser": null, + "bbox": [9.69853705, 55.38039597, 9.94306884, 55.48500642], + "visueltcenter": [9.77417672, 55.41549178], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195580" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5591", + "nr": "5591", + "navn": "Gelsted", + "stormodtageradresser": null, + "bbox": [9.87529331, 55.35334033, 10.00581522, 55.43818804], + "visueltcenter": [9.96614107, 55.39954114], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195591" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5592", + "nr": "5592", + "navn": "Ejby", + "stormodtageradresser": null, + "bbox": [9.76044098, 55.33572464, 10.00029096, 55.47338749], + "visueltcenter": [9.82415972, 55.36518649], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195592" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5600", + "nr": "5600", + "navn": "Faaborg", + "stormodtageradresser": null, + "bbox": [9.96877195, 55.02571796, 10.41138117, 55.20230769], + "visueltcenter": [10.30952407, 55.11203154], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "195600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5601", + "nr": "5601", + "navn": "Lyø", + "stormodtageradresser": null, + "bbox": [10.04334019, 54.98097425, 10.24075751, 55.0722716], + "visueltcenter": [10.1289297, 55.02895047], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-10-02T21:13:55.995Z", + "geo_version": 1, + "dagi_id": "378463" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5602", + "nr": "5602", + "navn": "Avernakø", + "stormodtageradresser": null, + "bbox": [10.19725513, 54.97317031, 10.37723997, 55.05387857], + "visueltcenter": [10.2827681, 55.00930386], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-06-01T21:16:01.264Z", + "geo_version": 1, + "dagi_id": "378121" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5603", + "nr": "5603", + "navn": "Bjørnø", + "stormodtageradresser": null, + "bbox": [10.22670321, 55.04561519, 10.29172244, 55.07914477], + "visueltcenter": [10.25360285, 55.06201633], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377938" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5610", + "nr": "5610", + "navn": "Assens", + "stormodtageradresser": null, + "bbox": [9.65845769, 55.17560739, 10.05726618, 55.40608712], + "visueltcenter": [9.8932785, 55.29165859], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0410", + "kode": "0410", + "navn": "Middelfart" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195610" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5620", + "nr": "5620", + "navn": "Glamsbjerg", + "stormodtageradresser": null, + "bbox": [10.0068247, 55.21991594, 10.17827149, 55.34798115], + "visueltcenter": [10.10343663, 55.27213799], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5631", + "nr": "5631", + "navn": "Ebberup", + "stormodtageradresser": null, + "bbox": [9.81517949, 55.07260448, 10.06885962, 55.26934075], + "visueltcenter": [9.96382534, 55.13177189], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195631" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5642", + "nr": "5642", + "navn": "Millinge", + "stormodtageradresser": null, + "bbox": [10.05467345, 55.11464356, 10.2389449, 55.17967837], + "visueltcenter": [10.12933606, 55.15062316], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195642" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5672", + "nr": "5672", + "navn": "Broby", + "stormodtageradresser": null, + "bbox": [10.16700867, 55.15164283, 10.3614458, 55.29886833], + "visueltcenter": [10.25211529, 55.24506199], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195672" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5683", + "nr": "5683", + "navn": "Haarby", + "stormodtageradresser": null, + "bbox": [9.94413738, 55.15178978, 10.22625912, 55.24881393], + "visueltcenter": [10.07032627, 55.18924968], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195683" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5690", + "nr": "5690", + "navn": "Tommerup", + "stormodtageradresser": null, + "bbox": [10.11765294, 55.26387394, 10.29456308, 55.36822305], + "visueltcenter": [10.19834407, 55.3195544], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0420", + "kode": "0420", + "navn": "Assens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195690" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5700", + "nr": "5700", + "navn": "Svendborg", + "stormodtageradresser": null, + "bbox": [10.29551536, 54.92792852, 10.78016497, 55.13871419], + "visueltcenter": [10.59802878, 55.01443666], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5750", + "nr": "5750", + "navn": "Ringe", + "stormodtageradresser": null, + "bbox": [10.28533543, 55.11343263, 10.58933562, 55.31441881], + "visueltcenter": [10.42313811, 55.2209888], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195750" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5762", + "nr": "5762", + "navn": "Vester Skerninge", + "stormodtageradresser": null, + "bbox": [10.36836144, 55.00898512, 10.54023964, 55.12035202], + "visueltcenter": [10.45011017, 55.06342876], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195762" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5771", + "nr": "5771", + "navn": "Stenstrup", + "stormodtageradresser": null, + "bbox": [10.40778544, 55.08284113, 10.60425324, 55.16753312], + "visueltcenter": [10.52352287, 55.12556284], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195771" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5772", + "nr": "5772", + "navn": "Kværndrup", + "stormodtageradresser": null, + "bbox": [10.4531578, 55.1478033, 10.62583681, 55.21932114], + "visueltcenter": [10.54250568, 55.18424637], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 7, + "dagi_id": "195772" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5792", + "nr": "5792", + "navn": "Årslev", + "stormodtageradresser": null, + "bbox": [10.33240106, 55.25768495, 10.55625601, 55.33456467], + "visueltcenter": [10.3936597, 55.2906707], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195792" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5800", + "nr": "5800", + "navn": "Nyborg", + "stormodtageradresser": null, + "bbox": [10.6858601, 55.25231834, 10.9662614, 55.44508925], + "visueltcenter": [10.79790443, 55.35301317], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5853", + "nr": "5853", + "navn": "Ørbæk", + "stormodtageradresser": null, + "bbox": [10.52897631, 55.18322231, 10.73253282, 55.3321465], + "visueltcenter": [10.63473931, 55.2661035], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195853" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5854", + "nr": "5854", + "navn": "Gislev", + "stormodtageradresser": null, + "bbox": [10.54350322, 55.18720827, 10.66243221, 55.23960531], + "visueltcenter": [10.60886979, 55.2122797], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195854" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5856", + "nr": "5856", + "navn": "Ryslinge", + "stormodtageradresser": null, + "bbox": [10.5086107, 55.22261189, 10.60029311, 55.2609759], + "visueltcenter": [10.54368086, 55.23725238], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195856" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5863", + "nr": "5863", + "navn": "Ferritslev Fyn", + "stormodtageradresser": null, + "bbox": [10.54400468, 55.29062838, 10.61529475, 55.32589619], + "visueltcenter": [10.58601195, 55.31045491], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0430", + "kode": "0430", + "navn": "Faaborg-Midtfyn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195863" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5871", + "nr": "5871", + "navn": "Frørup", + "stormodtageradresser": null, + "bbox": [10.69126497, 55.19974987, 10.87346099, 55.27414612], + "visueltcenter": [10.81307692, 55.23864739], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195871" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5874", + "nr": "5874", + "navn": "Hesselager", + "stormodtageradresser": null, + "bbox": [10.67494538, 55.11818798, 11.02330961, 55.26714293], + "visueltcenter": [10.79995852, 55.17539817], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0450", + "kode": "0450", + "navn": "Nyborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195874" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5881", + "nr": "5881", + "navn": "Skårup Fyn", + "stormodtageradresser": null, + "bbox": [10.63492565, 55.03732768, 10.8103113, 55.11482007], + "visueltcenter": [10.76263715, 55.06735111], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195881" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5882", + "nr": "5882", + "navn": "Vejstrup", + "stormodtageradresser": null, + "bbox": [10.61268548, 55.07442567, 10.82975624, 55.1317017], + "visueltcenter": [10.79980106, 55.09510217], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "195882" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5883", + "nr": "5883", + "navn": "Oure", + "stormodtageradresser": null, + "bbox": [10.66089541, 55.10467628, 10.83366989, 55.14068754], + "visueltcenter": [10.77337328, 55.11784585], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195883" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5884", + "nr": "5884", + "navn": "Gudme", + "stormodtageradresser": null, + "bbox": [10.67295783, 55.13099458, 10.75249223, 55.18611694], + "visueltcenter": [10.7120614, 55.1496317], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195884" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5892", + "nr": "5892", + "navn": "Gudbjerg Sydfyn", + "stormodtageradresser": null, + "bbox": [10.58512784, 55.12301073, 10.69485222, 55.195758], + "visueltcenter": [10.63638217, 55.15512414], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0479", + "kode": "0479", + "navn": "Svendborg" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 7, + "dagi_id": "195892" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5900", + "nr": "5900", + "navn": "Rudkøbing", + "stormodtageradresser": null, + "bbox": [10.61333287, 54.80108556, 10.9312906, 54.98034588], + "visueltcenter": [10.80968538, 54.88518842], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0482", + "kode": "0482", + "navn": "Langeland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5932", + "nr": "5932", + "navn": "Humble", + "stormodtageradresser": null, + "bbox": [10.52192113, 54.75161913, 10.87355934, 54.87158494], + "visueltcenter": [10.63436277, 54.81821541], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0482", + "kode": "0482", + "navn": "Langeland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195932" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5935", + "nr": "5935", + "navn": "Bagenkop", + "stormodtageradresser": null, + "bbox": [10.36935747, 54.53838447, 10.90829863, 54.78262536], + "visueltcenter": [10.66497262, 54.65753168], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0482", + "kode": "0482", + "navn": "Langeland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195935" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5943", + "nr": "5943", + "navn": "Strynø", + "stormodtageradresser": null, + "bbox": [10.52882803, 54.86816565, 10.64787756, 54.94102536], + "visueltcenter": [10.58807706, 54.90089651], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0482", + "kode": "0482", + "navn": "Langeland" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377936" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5953", + "nr": "5953", + "navn": "Tranekær", + "stormodtageradresser": null, + "bbox": [10.7200531, 54.91228321, 11.10323945, 55.2396206], + "visueltcenter": [10.94268354, 55.06361655], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0482", + "kode": "0482", + "navn": "Langeland" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195953" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5960", + "nr": "5960", + "navn": "Marstal", + "stormodtageradresser": null, + "bbox": [10.4278717, 54.76218014, 10.57063769, 54.94374057], + "visueltcenter": [10.51672958, 54.85672022], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0492", + "kode": "0492", + "navn": "Ærø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "195960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5965", + "nr": "5965", + "navn": "Birkholm", + "stormodtageradresser": null, + "bbox": [10.47333257, 54.91849916, 10.5509204, 54.94942403], + "visueltcenter": [10.50923834, 54.9345412], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0492", + "kode": "0492", + "navn": "Ærø" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-07-01T21:13:54.123Z", + "geo_version": 1, + "dagi_id": "378214" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5970", + "nr": "5970", + "navn": "Ærøskøbing", + "stormodtageradresser": null, + "bbox": [10.17488894, 54.61670513, 10.53176512, 54.94561817], + "visueltcenter": [10.33601694, 54.79716403], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0492", + "kode": "0492", + "navn": "Ærø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/5985", + "nr": "5985", + "navn": "Søby Ærø", + "stormodtageradresser": null, + "bbox": [10.10633582, 54.86538789, 10.36111896, 55.00608855], + "visueltcenter": [10.21809442, 54.94375791], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0492", + "kode": "0492", + "navn": "Ærø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "195985" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6000", + "nr": "6000", + "navn": "Kolding", + "stormodtageradresser": null, + "bbox": [9.35455648, 55.41134277, 9.60414105, 55.57502984], + "visueltcenter": [9.46847631, 55.50221297], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "196000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6040", + "nr": "6040", + "navn": "Egtved", + "stormodtageradresser": null, + "bbox": [9.18466637, 55.53514854, 9.49886928, 55.67190567], + "visueltcenter": [9.29089234, 55.61664144], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196040" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6051", + "nr": "6051", + "navn": "Almind", + "stormodtageradresser": null, + "bbox": [9.42140533, 55.53984276, 9.55950327, 55.58142584], + "visueltcenter": [9.46401838, 55.55907816], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196051" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6052", + "nr": "6052", + "navn": "Viuf", + "stormodtageradresser": null, + "bbox": [9.44850093, 55.56752606, 9.53698816, 55.64136834], + "visueltcenter": [9.49835852, 55.58677181], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 5, + "dagi_id": "196052" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6064", + "nr": "6064", + "navn": "Jordrup", + "stormodtageradresser": null, + "bbox": [9.26197756, 55.51291554, 9.36828771, 55.58577026], + "visueltcenter": [9.3183142, 55.55380577], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196064" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6070", + "nr": "6070", + "navn": "Christiansfeld", + "stormodtageradresser": null, + "bbox": [9.30207346, 55.30611528, 9.58982956, 55.42476008], + "visueltcenter": [9.44750863, 55.35487274], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196070" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6091", + "nr": "6091", + "navn": "Bjert", + "stormodtageradresser": null, + "bbox": [9.51101128, 55.41741602, 9.61826627, 55.50162519], + "visueltcenter": [9.55990342, 55.44548525], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196091" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6092", + "nr": "6092", + "navn": "Sønder Stenderup", + "stormodtageradresser": null, + "bbox": [9.58941678, 55.4021071, 9.71464251, 55.50527637], + "visueltcenter": [9.65720072, 55.44711912], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196092" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6093", + "nr": "6093", + "navn": "Sjølund", + "stormodtageradresser": null, + "bbox": [9.49706778, 55.37575548, 9.62098547, 55.43368205], + "visueltcenter": [9.53828204, 55.4068472], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196093" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6094", + "nr": "6094", + "navn": "Hejls", + "stormodtageradresser": null, + "bbox": [9.54046278, 55.35205295, 9.6873117, 55.41648383], + "visueltcenter": [9.62026417, 55.38893478], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196094" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6100", + "nr": "6100", + "navn": "Haderslev", + "stormodtageradresser": null, + "bbox": [9.39561944, 55.11666339, 9.82739702, 55.371969], + "visueltcenter": [9.61886938, 55.24177268], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6200", + "nr": "6200", + "navn": "Aabenraa", + "stormodtageradresser": null, + "bbox": [9.27317051, 54.90676818, 9.63932784, 55.12458135], + "visueltcenter": [9.49975045, 55.02899493], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6210", + "nr": "6210", + "navn": "Barsø", + "stormodtageradresser": null, + "bbox": [9.52881243, 55.09038707, 9.65760351, 55.15183953], + "visueltcenter": [9.58941416, 55.1226369], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-05-01T21:13:25.676Z", + "geo_version": 1, + "dagi_id": "377934" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6230", + "nr": "6230", + "navn": "Rødekro", + "stormodtageradresser": null, + "bbox": [9.11217749, 55.00470583, 9.47903503, 55.16831972], + "visueltcenter": [9.28037618, 55.07437317], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6240", + "nr": "6240", + "navn": "Løgumkloster", + "stormodtageradresser": null, + "bbox": [8.8649784, 54.9668049, 9.14137362, 55.13549769], + "visueltcenter": [8.96415413, 55.06237954], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196240" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6261", + "nr": "6261", + "navn": "Bredebro", + "stormodtageradresser": null, + "bbox": [8.58758802, 54.98884267, 8.87493167, 55.16084043], + "visueltcenter": [8.68091354, 55.07311357], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196261" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6270", + "nr": "6270", + "navn": "Tønder", + "stormodtageradresser": null, + "bbox": [8.74118417, 54.88109517, 9.04121386, 55.03751238], + "visueltcenter": [8.89453488, 54.95248429], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "196270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6280", + "nr": "6280", + "navn": "Højer", + "stormodtageradresser": null, + "bbox": [8.50169643, 54.89182983, 8.82761659, 55.05576112], + "visueltcenter": [8.65269961, 54.97473424], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196280" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6300", + "nr": "6300", + "navn": "Gråsten", + "stormodtageradresser": null, + "bbox": [9.46169268, 54.86264803, 9.64017799, 54.96300025], + "visueltcenter": [9.55791076, 54.91730187], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6310", + "nr": "6310", + "navn": "Broager", + "stormodtageradresser": null, + "bbox": [9.60525127, 54.82276984, 9.8346056, 54.92444646], + "visueltcenter": [9.68079394, 54.8713804], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6320", + "nr": "6320", + "navn": "Egernsund", + "stormodtageradresser": null, + "bbox": [9.59112251, 54.88176326, 9.64322815, 54.92155623], + "visueltcenter": [9.61059297, 54.90003298], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6330", + "nr": "6330", + "navn": "Padborg", + "stormodtageradresser": null, + "bbox": [9.23140549, 54.79994762, 9.43577321, 54.92598349], + "visueltcenter": [9.30983473, 54.84549059], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6340", + "nr": "6340", + "navn": "Kruså", + "stormodtageradresser": null, + "bbox": [9.37187939, 54.82656749, 9.54048051, 54.90910122], + "visueltcenter": [9.46328593, 54.8687306], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196340" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6360", + "nr": "6360", + "navn": "Tinglev", + "stormodtageradresser": null, + "bbox": [9.10715995, 54.84967662, 9.36995396, 54.99729652], + "visueltcenter": [9.20354055, 54.90310802], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196360" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6372", + "nr": "6372", + "navn": "Bylderup-Bov", + "stormodtageradresser": null, + "bbox": [9.00494291, 54.8700452, 9.2216849, 55.05738556], + "visueltcenter": [9.14165594, 55.01708464], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196372" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6392", + "nr": "6392", + "navn": "Bolderslev", + "stormodtageradresser": null, + "bbox": [9.16674475, 54.95492994, 9.36548009, 55.02944298], + "visueltcenter": [9.20811159, 54.9843364], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196392" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6400", + "nr": "6400", + "navn": "Sønderborg", + "stormodtageradresser": null, + "bbox": [9.58073951, 54.85683123, 9.87882269, 55.02224606], + "visueltcenter": [9.71079556, 54.9528525], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-05-15T21:03:24.475Z", + "geo_ændret": "2023-05-15T21:03:24.475Z", + "geo_version": 4, + "dagi_id": "196400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6430", + "nr": "6430", + "navn": "Nordborg", + "stormodtageradresser": null, + "bbox": [9.59673354, 54.96609915, 10.00073977, 55.16087669], + "visueltcenter": [9.77014411, 55.06940698], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196430" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6440", + "nr": "6440", + "navn": "Augustenborg", + "stormodtageradresser": null, + "bbox": [9.81417259, 54.93292713, 10.11440221, 55.05468296], + "visueltcenter": [10.00776445, 54.98937381], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "196440" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6470", + "nr": "6470", + "navn": "Sydals", + "stormodtageradresser": null, + "bbox": [9.81867975, 54.7575004, 10.19984277, 54.97237184], + "visueltcenter": [10.03587811, 54.87308589], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0540", + "kode": "0540", + "navn": "Sønderborg" + } + ], + "ændret": "2023-05-15T21:03:24.475Z", + "geo_ændret": "2023-05-15T21:03:24.475Z", + "geo_version": 4, + "dagi_id": "196470" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6500", + "nr": "6500", + "navn": "Vojens", + "stormodtageradresser": null, + "bbox": [9.07480215, 55.13055068, 9.42449889, 55.31654855], + "visueltcenter": [9.31835235, 55.2436827], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6510", + "nr": "6510", + "navn": "Gram", + "stormodtageradresser": null, + "bbox": [8.88500234, 55.19171266, 9.11670806, 55.33801066], + "visueltcenter": [9.01601909, 55.27645397], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 6, + "dagi_id": "196510" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6520", + "nr": "6520", + "navn": "Toftlund", + "stormodtageradresser": null, + "bbox": [8.88479924, 55.12834888, 9.15525869, 55.24168389], + "visueltcenter": [9.0451996, 55.18306206], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196520" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6534", + "nr": "6534", + "navn": "Agerskov", + "stormodtageradresser": null, + "bbox": [9.08753304, 55.09019911, 9.24987256, 55.17489775], + "visueltcenter": [9.15854853, 55.12832485], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0580", + "kode": "0580", + "navn": "Aabenraa" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196534" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6535", + "nr": "6535", + "navn": "Branderup J", + "stormodtageradresser": null, + "bbox": [8.98178015, 55.08318849, 9.14559523, 55.14501131], + "visueltcenter": [9.05916508, 55.12085206], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196535" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6541", + "nr": "6541", + "navn": "Bevtoft", + "stormodtageradresser": null, + "bbox": [9.10505235, 55.15210635, 9.2560291, 55.23489328], + "visueltcenter": [9.19750089, 55.19588025], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196541" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6560", + "nr": "6560", + "navn": "Sommersted", + "stormodtageradresser": null, + "bbox": [9.17957176, 55.29006577, 9.36540959, 55.38328892], + "visueltcenter": [9.26072776, 55.32447339], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6580", + "nr": "6580", + "navn": "Vamdrup", + "stormodtageradresser": null, + "bbox": [9.21472988, 55.3681849, 9.45741603, 55.46410788], + "visueltcenter": [9.34398711, 55.41366579], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 3, + "dagi_id": "196580" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6600", + "nr": "6600", + "navn": "Vejen", + "stormodtageradresser": null, + "bbox": [9.03274125, 55.43195312, 9.30420206, 55.59561733], + "visueltcenter": [9.11204215, 55.4784284], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 4, + "dagi_id": "196600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6621", + "nr": "6621", + "navn": "Gesten", + "stormodtageradresser": null, + "bbox": [9.14241467, 55.5066268, 9.2668009, 55.56095316], + "visueltcenter": [9.1837296, 55.53607493], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196621" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6622", + "nr": "6622", + "navn": "Bække", + "stormodtageradresser": null, + "bbox": [9.07771244, 55.53373231, 9.23237386, 55.61905327], + "visueltcenter": [9.15666611, 55.58270689], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196622" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6623", + "nr": "6623", + "navn": "Vorbasse", + "stormodtageradresser": null, + "bbox": [8.97006913, 55.59340379, 9.18910743, 55.70431915], + "visueltcenter": [9.09958348, 55.63499139], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196623" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6630", + "nr": "6630", + "navn": "Rødding", + "stormodtageradresser": null, + "bbox": [8.87315633, 55.28920649, 9.28899869, 55.45122345], + "visueltcenter": [9.14057169, 55.38472069], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0510", + "kode": "0510", + "navn": "Haderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196630" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6640", + "nr": "6640", + "navn": "Lunderskov", + "stormodtageradresser": null, + "bbox": [9.25253682, 55.44610822, 9.40485569, 55.56217217], + "visueltcenter": [9.32882435, 55.4763505], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0621", + "kode": "0621", + "navn": "Kolding" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196640" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6650", + "nr": "6650", + "navn": "Brørup", + "stormodtageradresser": null, + "bbox": [8.94131061, 55.43609206, 9.09233662, 55.60609813], + "visueltcenter": [8.99731666, 55.49880374], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196650" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6660", + "nr": "6660", + "navn": "Lintrup", + "stormodtageradresser": null, + "bbox": [8.90671807, 55.37576842, 9.04380041, 55.44090655], + "visueltcenter": [8.99575864, 55.41777362], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6670", + "nr": "6670", + "navn": "Holsted", + "stormodtageradresser": null, + "bbox": [8.82293036, 55.45836641, 8.97007529, 55.59641831], + "visueltcenter": [8.90149179, 55.51123399], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6682", + "nr": "6682", + "navn": "Hovborg", + "stormodtageradresser": null, + "bbox": [8.87571941, 55.57318602, 8.99822959, 55.64459065], + "visueltcenter": [8.94671137, 55.60367953], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196682" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6683", + "nr": "6683", + "navn": "Føvling", + "stormodtageradresser": null, + "bbox": [8.84402063, 55.4070463, 8.97833768, 55.47100322], + "visueltcenter": [8.91001913, 55.43560842], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196683" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6690", + "nr": "6690", + "navn": "Gørding", + "stormodtageradresser": null, + "bbox": [8.74970152, 55.42857187, 8.87888563, 55.51025051], + "visueltcenter": [8.82201058, 55.4813413], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196690" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6700", + "nr": "6700", + "navn": "Esbjerg", + "stormodtageradresser": null, + "bbox": [8.38028812, 55.43338552, 8.51534216, 55.4959104], + "visueltcenter": [8.46174114, 55.45935717], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6705", + "nr": "6705", + "navn": "Esbjerg Ø", + "stormodtageradresser": null, + "bbox": [8.45941099, 55.41275082, 8.63298928, 55.53367654], + "visueltcenter": [8.50670361, 55.49119455], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196705" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6710", + "nr": "6710", + "navn": "Esbjerg V", + "stormodtageradresser": null, + "bbox": [8.26114667, 55.47968, 8.44665225, 55.59754479], + "visueltcenter": [8.34866677, 55.55262453], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196710" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6715", + "nr": "6715", + "navn": "Esbjerg N", + "stormodtageradresser": null, + "bbox": [8.42331043, 55.488315, 8.60081506, 55.58743679], + "visueltcenter": [8.5093547, 55.55332885], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "196715" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6720", + "nr": "6720", + "navn": "Fanø", + "stormodtageradresser": null, + "bbox": [6.57947446, 55.15003752, 8.57822207, 55.48294238], + "visueltcenter": [7.56593986, 55.28286185], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0563", + "kode": "0563", + "navn": "Fanø" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "196720" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6731", + "nr": "6731", + "navn": "Tjæreborg", + "stormodtageradresser": null, + "bbox": [8.5325833, 55.38693677, 8.64624839, 55.50116573], + "visueltcenter": [8.59046906, 55.46029975], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196731" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6740", + "nr": "6740", + "navn": "Bramming", + "stormodtageradresser": null, + "bbox": [8.58025469, 55.39357196, 8.85982705, 55.55391798], + "visueltcenter": [8.70168486, 55.46065157], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196740" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6752", + "nr": "6752", + "navn": "Glejbjerg", + "stormodtageradresser": null, + "bbox": [8.76193868, 55.51961742, 8.92546302, 55.59557321], + "visueltcenter": [8.83181793, 55.55973335], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196752" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6753", + "nr": "6753", + "navn": "Agerbæk", + "stormodtageradresser": null, + "bbox": [8.73827841, 55.57992851, 8.89200713, 55.63140939], + "visueltcenter": [8.82421529, 55.60852142], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0575", + "kode": "0575", + "navn": "Vejen" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196753" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6760", + "nr": "6760", + "navn": "Ribe", + "stormodtageradresser": null, + "bbox": [8.29544147, 55.20610088, 8.93899951, 55.4154466], + "visueltcenter": [8.76358629, 55.31137673], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 3, + "dagi_id": "196760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6771", + "nr": "6771", + "navn": "Gredstedbro", + "stormodtageradresser": null, + "bbox": [8.55538272, 55.33867221, 8.8687706, 55.44169301], + "visueltcenter": [8.60307494, 55.37115323], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196771" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6780", + "nr": "6780", + "navn": "Skærbæk", + "stormodtageradresser": null, + "bbox": [8.5926978, 55.08023308, 8.93722596, 55.24501421], + "visueltcenter": [8.79091021, 55.17738587], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196780" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6792", + "nr": "6792", + "navn": "Rømø", + "stormodtageradresser": null, + "bbox": [7.54794193, 54.99257653, 8.64231177, 55.23431717], + "visueltcenter": [8.29013955, 55.14881868], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0550", + "kode": "0550", + "navn": "Tønder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196792" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6800", + "nr": "6800", + "navn": "Varde", + "stormodtageradresser": null, + "bbox": [8.35405614, 55.54569619, 8.77531554, 55.79692077], + "visueltcenter": [8.52854473, 55.65607154], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6818", + "nr": "6818", + "navn": "Årre", + "stormodtageradresser": null, + "bbox": [8.54570649, 55.5124986, 8.77784615, 55.63563142], + "visueltcenter": [8.71514348, 55.5768897], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0561", + "kode": "0561", + "navn": "Esbjerg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196818" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6823", + "nr": "6823", + "navn": "Ansager", + "stormodtageradresser": null, + "bbox": [8.65554676, 55.6664288, 8.83765049, 55.77665847], + "visueltcenter": [8.75126746, 55.72123589], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196823" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6830", + "nr": "6830", + "navn": "Nørre Nebel", + "stormodtageradresser": null, + "bbox": [7.89005885, 55.72052192, 8.47037286, 55.93177251], + "visueltcenter": [8.22547945, 55.7873441], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196830" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6840", + "nr": "6840", + "navn": "Oksbøl", + "stormodtageradresser": null, + "bbox": [4.39115147, 55.49328033, 8.33242625, 55.74995883], + "visueltcenter": [8.2413214, 55.63843566], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196840" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6851", + "nr": "6851", + "navn": "Janderup Vestj", + "stormodtageradresser": null, + "bbox": [8.32422911, 55.60675955, 8.43591561, 55.67778655], + "visueltcenter": [8.38971082, 55.63374455], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196851" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6852", + "nr": "6852", + "navn": "Billum", + "stormodtageradresser": null, + "bbox": [8.26690634, 55.57662989, 8.36708187, 55.65505957], + "visueltcenter": [8.306516, 55.59542013], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196852" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6853", + "nr": "6853", + "navn": "Vejers Strand", + "stormodtageradresser": null, + "bbox": [4.48465166, 55.21849745, 8.19834617, 55.67700869], + "visueltcenter": [5.24215492, 55.43289751], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196853" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6854", + "nr": "6854", + "navn": "Henne", + "stormodtageradresser": null, + "bbox": [4.24754191, 55.58710609, 8.33312335, 55.86022595], + "visueltcenter": [4.43594447, 55.71982269], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196854" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6855", + "nr": "6855", + "navn": "Outrup", + "stormodtageradresser": null, + "bbox": [8.29184677, 55.67073727, 8.47879834, 55.75042341], + "visueltcenter": [8.37405373, 55.70803366], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196855" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6857", + "nr": "6857", + "navn": "Blåvand", + "stormodtageradresser": null, + "bbox": [5.74280567, 55.33383426, 8.3479393, 55.60715518], + "visueltcenter": [6.6069035, 55.45206547], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196857" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6862", + "nr": "6862", + "navn": "Tistrup", + "stormodtageradresser": null, + "bbox": [8.55691209, 55.673139, 8.70211646, 55.75124366], + "visueltcenter": [8.63263378, 55.71896752], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196862" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6870", + "nr": "6870", + "navn": "Ølgod", + "stormodtageradresser": null, + "bbox": [8.5016525, 55.74172669, 8.75939952, 55.85306007], + "visueltcenter": [8.61815877, 55.79347704], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196870" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6880", + "nr": "6880", + "navn": "Tarm", + "stormodtageradresser": null, + "bbox": [8.24825239, 55.77197446, 8.82510362, 55.9345759], + "visueltcenter": [8.54104706, 55.89016003], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196880" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6893", + "nr": "6893", + "navn": "Hemmet", + "stormodtageradresser": null, + "bbox": [8.24828681, 55.7971358, 8.49006459, 55.9318605], + "visueltcenter": [8.33561789, 55.85259869], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196893" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6900", + "nr": "6900", + "navn": "Skjern", + "stormodtageradresser": null, + "bbox": [8.20889205, 55.88096446, 8.75271924, 56.08083792], + "visueltcenter": [8.53885308, 55.99089664], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "196900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6920", + "nr": "6920", + "navn": "Videbæk", + "stormodtageradresser": null, + "bbox": [8.52728274, 55.96103633, 8.83176108, 56.14928532], + "visueltcenter": [8.66992988, 56.08052418], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "196920" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6933", + "nr": "6933", + "navn": "Kibæk", + "stormodtageradresser": null, + "bbox": [8.74376656, 55.89070179, 9.01279944, 56.09470022], + "visueltcenter": [8.92947696, 55.94883412], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196933" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6940", + "nr": "6940", + "navn": "Lem St", + "stormodtageradresser": null, + "bbox": [8.32105536, 56.01012058, 8.48379101, 56.08056351], + "visueltcenter": [8.42316735, 56.05110041], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "196940" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6950", + "nr": "6950", + "navn": "Ringkøbing", + "stormodtageradresser": null, + "bbox": [3.2188459, 55.88343876, 8.46481014, 56.40880656], + "visueltcenter": [4.07461311, 56.20098497], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196950" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6960", + "nr": "6960", + "navn": "Hvide Sande", + "stormodtageradresser": null, + "bbox": [3.24755504, 55.6537631, 8.25112349, 56.21585104], + "visueltcenter": [4.28511819, 55.93212987], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6971", + "nr": "6971", + "navn": "Spjald", + "stormodtageradresser": null, + "bbox": [8.35659792, 56.07617719, 8.59848695, 56.19662457], + "visueltcenter": [8.50600358, 56.15361133], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196971" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6973", + "nr": "6973", + "navn": "Ørnhøj", + "stormodtageradresser": null, + "bbox": [8.44349441, 56.144087, 8.64515554, 56.25052414], + "visueltcenter": [8.52448598, 56.21518023], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "196973" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6980", + "nr": "6980", + "navn": "Tim", + "stormodtageradresser": null, + "bbox": [8.14369289, 56.16110424, 8.47368135, 56.23278921], + "visueltcenter": [8.19684723, 56.18956069], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196980" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/6990", + "nr": "6990", + "navn": "Ulfborg", + "stormodtageradresser": null, + "bbox": [4.00658877, 56.07597163, 8.50897614, 56.58225362], + "visueltcenter": [8.0070526, 56.3042395], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "196990" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7000", + "nr": "7000", + "navn": "Fredericia", + "stormodtageradresser": null, + "bbox": [9.50773806, 55.49145648, 9.98922003, 55.65913538], + "visueltcenter": [9.66918005, 55.57103757], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0607", + "kode": "0607", + "navn": "Fredericia" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 5, + "dagi_id": "197000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7080", + "nr": "7080", + "navn": "Børkop", + "stormodtageradresser": null, + "bbox": [9.57471062, 55.61463518, 9.79041128, 55.7024231], + "visueltcenter": [9.67048857, 55.65719788], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "197080" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7100", + "nr": "7100", + "navn": "Vejle", + "stormodtageradresser": null, + "bbox": [9.34437136, 55.61215238, 9.62192238, 55.82032729], + "visueltcenter": [9.5066267, 55.69052913], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "197100" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7120", + "nr": "7120", + "navn": "Vejle Øst", + "stormodtageradresser": null, + "bbox": [9.5826596, 55.69746869, 9.68786533, 55.75994605], + "visueltcenter": [9.63873738, 55.7220274], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197120" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7130", + "nr": "7130", + "navn": "Juelsminde", + "stormodtageradresser": null, + "bbox": [9.87588803, 55.62265352, 10.17912661, 55.8538467], + "visueltcenter": [10.02918372, 55.76046689], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197130" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7140", + "nr": "7140", + "navn": "Stouby", + "stormodtageradresser": null, + "bbox": [9.71116506, 55.64881396, 9.88380819, 55.75656393], + "visueltcenter": [9.78417201, 55.69215915], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197140" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7150", + "nr": "7150", + "navn": "Barrit", + "stormodtageradresser": null, + "bbox": [9.83497708, 55.63789915, 9.96289154, 55.74659441], + "visueltcenter": [9.8978292, 55.68695015], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197150" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7160", + "nr": "7160", + "navn": "Tørring", + "stormodtageradresser": null, + "bbox": [9.38053389, 55.79943514, 9.61184419, 55.92416145], + "visueltcenter": [9.50220604, 55.87483844], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 7, + "dagi_id": "197160" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7171", + "nr": "7171", + "navn": "Uldum", + "stormodtageradresser": null, + "bbox": [9.52629954, 55.80771466, 9.65256476, 55.87283289], + "visueltcenter": [9.59518771, 55.8358153], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197171" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7173", + "nr": "7173", + "navn": "Vonge", + "stormodtageradresser": null, + "bbox": [9.36613252, 55.82452164, 9.46088953, 55.90647394], + "visueltcenter": [9.42328648, 55.86467774], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197173" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7182", + "nr": "7182", + "navn": "Bredsten", + "stormodtageradresser": null, + "bbox": [9.2622995, 55.66164934, 9.43077072, 55.74556503], + "visueltcenter": [9.36512374, 55.70610256], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197182" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7183", + "nr": "7183", + "navn": "Randbøl", + "stormodtageradresser": null, + "bbox": [9.15114267, 55.62609383, 9.32217547, 55.74417204], + "visueltcenter": [9.26919785, 55.67810764], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197183" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7184", + "nr": "7184", + "navn": "Vandel", + "stormodtageradresser": null, + "bbox": [9.14894582, 55.67813169, 9.24681778, 55.76224087], + "visueltcenter": [9.19531768, 55.71507833], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197184" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7190", + "nr": "7190", + "navn": "Billund", + "stormodtageradresser": null, + "bbox": [8.99133962, 55.66348549, 9.19927986, 55.79031466], + "visueltcenter": [9.10071489, 55.73792043], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197190" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7200", + "nr": "7200", + "navn": "Grindsted", + "stormodtageradresser": null, + "bbox": [8.74683815, 55.60607941, 9.07799918, 55.85065737], + "visueltcenter": [8.89887879, 55.75986358], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0573", + "kode": "0573", + "navn": "Varde" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7250", + "nr": "7250", + "navn": "Hejnsvig", + "stormodtageradresser": null, + "bbox": [8.88572214, 55.62332258, 9.09057362, 55.73905518], + "visueltcenter": [8.96462269, 55.69122218], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7260", + "nr": "7260", + "navn": "Sønder Omme", + "stormodtageradresser": null, + "bbox": [8.79423454, 55.79158646, 8.98006148, 55.90291612], + "visueltcenter": [8.89341393, 55.85051521], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197260" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7270", + "nr": "7270", + "navn": "Stakroge", + "stormodtageradresser": null, + "bbox": [8.78972007, 55.85035067, 8.88469531, 55.92691444], + "visueltcenter": [8.82814289, 55.89268974], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0530", + "kode": "0530", + "navn": "Billund" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7280", + "nr": "7280", + "navn": "Sønder Felding", + "stormodtageradresser": null, + "bbox": [8.72805539, 55.89693368, 8.86920681, 55.97808514], + "visueltcenter": [8.80469301, 55.94233943], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197280" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7300", + "nr": "7300", + "navn": "Jelling", + "stormodtageradresser": null, + "bbox": [9.32419204, 55.7248602, 9.51613164, 55.83757106], + "visueltcenter": [9.43589642, 55.76853547], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7321", + "nr": "7321", + "navn": "Gadbjerg", + "stormodtageradresser": null, + "bbox": [9.18193009, 55.73265045, 9.36522991, 55.80076051], + "visueltcenter": [9.31066038, 55.77031641], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197321" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7323", + "nr": "7323", + "navn": "Give", + "stormodtageradresser": null, + "bbox": [9.05476923, 55.76386212, 9.39864816, 55.95236178], + "visueltcenter": [9.2710166, 55.85744681], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197323" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7330", + "nr": "7330", + "navn": "Brande", + "stormodtageradresser": null, + "bbox": [8.94668117, 55.83045311, 9.21946285, 56.02967819], + "visueltcenter": [9.0912202, 55.93341595], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "197330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7361", + "nr": "7361", + "navn": "Ejstrupholm", + "stormodtageradresser": null, + "bbox": [9.15225966, 55.9309108, 9.38283269, 56.07647448], + "visueltcenter": [9.24826265, 56.02375436], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197361" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7362", + "nr": "7362", + "navn": "Hampen", + "stormodtageradresser": null, + "bbox": [9.30736359, 55.99061195, 9.44035721, 56.09997354], + "visueltcenter": [9.38166979, 56.06515415], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197362" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7400", + "nr": "7400", + "navn": "Herning", + "stormodtageradresser": null, + "bbox": [8.7587575, 55.98273993, 9.18898152, 56.28396245], + "visueltcenter": [8.98775376, 56.11911505], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "197400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7430", + "nr": "7430", + "navn": "Ikast", + "stormodtageradresser": null, + "bbox": [9.07515678, 56.05663253, 9.31997671, 56.20985247], + "visueltcenter": [9.1925469, 56.09377094], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197430" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7441", + "nr": "7441", + "navn": "Bording", + "stormodtageradresser": null, + "bbox": [9.11053731, 56.08763494, 9.42511297, 56.27626121], + "visueltcenter": [9.25469883, 56.15035869], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197441" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7442", + "nr": "7442", + "navn": "Engesvang", + "stormodtageradresser": null, + "bbox": [9.2216372, 56.12888409, 9.42416351, 56.26991699], + "visueltcenter": [9.30391703, 56.21005036], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197442" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7451", + "nr": "7451", + "navn": "Sunds", + "stormodtageradresser": null, + "bbox": [8.90906925, 56.17297742, 9.15687988, 56.28647061], + "visueltcenter": [9.02585964, 56.22960774], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197451" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7470", + "nr": "7470", + "navn": "Karup J", + "stormodtageradresser": null, + "bbox": [9.01885086, 56.21824702, 9.32342093, 56.41189235], + "visueltcenter": [9.17419358, 56.32799021], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197470" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7480", + "nr": "7480", + "navn": "Vildbjerg", + "stormodtageradresser": null, + "bbox": [8.61810085, 56.12469321, 8.87847551, 56.23289876], + "visueltcenter": [8.74507312, 56.18215286], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0760", + "kode": "0760", + "navn": "Ringkøbing-Skjern" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "197480" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7490", + "nr": "7490", + "navn": "Aulum", + "stormodtageradresser": null, + "bbox": [8.71190443, 56.21713739, 8.94757854, 56.36320303], + "visueltcenter": [8.79948064, 56.2699576], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197490" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7500", + "nr": "7500", + "navn": "Holstebro", + "stormodtageradresser": null, + "bbox": [8.40579178, 56.20522377, 8.9332873, 56.4322947], + "visueltcenter": [8.58519299, 56.34794414], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "197500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7540", + "nr": "7540", + "navn": "Haderup", + "stormodtageradresser": null, + "bbox": [8.86807369, 56.26791263, 9.08833686, 56.42054698], + "visueltcenter": [8.9740962, 56.32444075], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197540" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7550", + "nr": "7550", + "navn": "Sørvad", + "stormodtageradresser": null, + "bbox": [8.58710844, 56.20632376, 8.74020976, 56.29883426], + "visueltcenter": [8.66525292, 56.25194401], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "197550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7560", + "nr": "7560", + "navn": "Hjerm", + "stormodtageradresser": null, + "bbox": [8.58732047, 56.39868259, 8.70960213, 56.49810896], + "visueltcenter": [8.64900967, 56.43288826], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7570", + "nr": "7570", + "navn": "Vemb", + "stormodtageradresser": null, + "bbox": [8.14732797, 56.29829185, 8.47854836, 56.42072931], + "visueltcenter": [8.27244636, 56.35236537], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197570" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7600", + "nr": "7600", + "navn": "Struer", + "stormodtageradresser": null, + "bbox": [8.38958963, 56.38697991, 8.69597014, 56.5990049], + "visueltcenter": [8.60339354, 56.52775554], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "197600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7620", + "nr": "7620", + "navn": "Lemvig", + "stormodtageradresser": null, + "bbox": [5.01902856, 56.36727225, 8.52683418, 56.76359848], + "visueltcenter": [8.33453584, 56.54580784], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7650", + "nr": "7650", + "navn": "Bøvlingbjerg", + "stormodtageradresser": null, + "bbox": [4.73555631, 56.33802347, 8.28233941, 56.65037438], + "visueltcenter": [5.04556549, 56.54689645], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197650" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7660", + "nr": "7660", + "navn": "Bækmarksbro", + "stormodtageradresser": null, + "bbox": [8.2227426, 56.37527831, 8.42250208, 56.46641204], + "visueltcenter": [8.33184097, 56.41551889], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7673", + "nr": "7673", + "navn": "Harboøre", + "stormodtageradresser": null, + "bbox": [5.41590645, 56.49864995, 8.31755672, 56.83624656], + "visueltcenter": [8.06400269, 56.62870473], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197673" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7680", + "nr": "7680", + "navn": "Thyborøn", + "stormodtageradresser": null, + "bbox": [5.66807158, 56.63119945, 8.25060545, 56.99288748], + "visueltcenter": [6.26580665, 56.86776362], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0665", + "kode": "0665", + "navn": "Lemvig" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197680" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7700", + "nr": "7700", + "navn": "Thisted", + "stormodtageradresser": null, + "bbox": [7.48986551, 56.86021389, 8.97417353, 57.50000114], + "visueltcenter": [7.90681299, 57.32370377], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7730", + "nr": "7730", + "navn": "Hanstholm", + "stormodtageradresser": null, + "bbox": [7.97737797, 57.05613836, 8.8010349, 57.61690217], + "visueltcenter": [8.33928238, 57.44347291], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197730" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7741", + "nr": "7741", + "navn": "Frøstrup", + "stormodtageradresser": null, + "bbox": [8.45446375, 57.04414821, 9.17936439, 57.694171], + "visueltcenter": [8.9170332, 57.39912576], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197741" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7742", + "nr": "7742", + "navn": "Vesløs", + "stormodtageradresser": null, + "bbox": [8.86644192, 56.94786553, 9.12355547, 57.05571623], + "visueltcenter": [9.03058677, 57.00570708], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197742" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7752", + "nr": "7752", + "navn": "Snedsted", + "stormodtageradresser": null, + "bbox": [7.21397443, 56.7925634, 8.63979223, 57.35630233], + "visueltcenter": [7.47858654, 57.2597249], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197752" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7755", + "nr": "7755", + "navn": "Bedsted Thy", + "stormodtageradresser": null, + "bbox": [6.92930205, 56.75911836, 8.55856376, 57.27349309], + "visueltcenter": [7.21613935, 57.17740891], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197755" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7760", + "nr": "7760", + "navn": "Hurup Thy", + "stormodtageradresser": null, + "bbox": [8.28081144, 56.62388919, 8.55347442, 56.78594151], + "visueltcenter": [8.42909599, 56.72425361], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7770", + "nr": "7770", + "navn": "Vestervig", + "stormodtageradresser": null, + "bbox": [6.22389645, 56.64886528, 8.37760784, 57.18792664], + "visueltcenter": [6.93927002, 57.02202911], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0787", + "kode": "0787", + "navn": "Thisted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197770" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7790", + "nr": "7790", + "navn": "Thyholm", + "stormodtageradresser": null, + "bbox": [8.3733484, 56.56305141, 8.69448414, 56.69702979], + "visueltcenter": [8.51363052, 56.62765212], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197790" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7800", + "nr": "7800", + "navn": "Skive", + "stormodtageradresser": null, + "bbox": [8.84953843, 56.40471634, 9.09611224, 56.65111678], + "visueltcenter": [8.99505562, 56.46317549], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7830", + "nr": "7830", + "navn": "Vinderup", + "stormodtageradresser": null, + "bbox": [8.66486362, 56.37884524, 8.97752383, 56.56625933], + "visueltcenter": [8.80020865, 56.47769058], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0657", + "kode": "0657", + "navn": "Herning" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0661", + "kode": "0661", + "navn": "Holstebro" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0671", + "kode": "0671", + "navn": "Struer" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197830" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7840", + "nr": "7840", + "navn": "Højslev", + "stormodtageradresser": null, + "bbox": [9.0528607, 56.5129132, 9.30212165, 56.6685926], + "visueltcenter": [9.16509632, 56.59677993], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197840" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7850", + "nr": "7850", + "navn": "Stoholm Jyll", + "stormodtageradresser": null, + "bbox": [9.03119183, 56.43480813, 9.21130504, 56.52953898], + "visueltcenter": [9.12847686, 56.48444375], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "197850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7860", + "nr": "7860", + "navn": "Spøttrup", + "stormodtageradresser": null, + "bbox": [8.64955217, 56.5454971, 8.98612246, 56.70270043], + "visueltcenter": [8.82098992, 56.62419195], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197860" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7870", + "nr": "7870", + "navn": "Roslev", + "stormodtageradresser": null, + "bbox": [8.80652353, 56.61847213, 9.21405808, 56.81784291], + "visueltcenter": [9.04159313, 56.72437033], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197870" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7884", + "nr": "7884", + "navn": "Fur", + "stormodtageradresser": null, + "bbox": [8.90229871, 56.79302727, 9.13705326, 56.89286279], + "visueltcenter": [9.00553893, 56.84193567], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0779", + "kode": "0779", + "navn": "Skive" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "197884" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7900", + "nr": "7900", + "navn": "Nykøbing M", + "stormodtageradresser": null, + "bbox": [8.5813926, 56.71058114, 9.03175851, 56.99095848], + "visueltcenter": [8.88457349, 56.90798948], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7950", + "nr": "7950", + "navn": "Erslev", + "stormodtageradresser": null, + "bbox": [8.59714866, 56.8038235, 8.80896912, 56.91986087], + "visueltcenter": [8.69843044, 56.8517685], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197950" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7960", + "nr": "7960", + "navn": "Karby", + "stormodtageradresser": null, + "bbox": [8.49175754, 56.69097552, 8.6591195, 56.80825303], + "visueltcenter": [8.56443606, 56.76132134], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197960" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7970", + "nr": "7970", + "navn": "Redsted M", + "stormodtageradresser": null, + "bbox": [8.58541921, 56.71053779, 8.70468773, 56.77135707], + "visueltcenter": [8.63946767, 56.73993747], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7980", + "nr": "7980", + "navn": "Vils", + "stormodtageradresser": null, + "bbox": [8.68532846, 56.7193029, 8.75808363, 56.78722989], + "visueltcenter": [8.72666914, 56.74842812], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197980" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/7990", + "nr": "7990", + "navn": "Øster Assels", + "stormodtageradresser": null, + "bbox": [8.59102882, 56.64778952, 8.81035688, 56.73670795], + "visueltcenter": [8.70032858, 56.68763915], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0773", + "kode": "0773", + "navn": "Morsø" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "197990" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8000", + "nr": "8000", + "navn": "Aarhus C", + "stormodtageradresser": null, + "bbox": [10.17165345, 56.11626813, 10.33170603, 56.17448857], + "visueltcenter": [10.27802097, 56.15051496], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8200", + "nr": "8200", + "navn": "Aarhus N", + "stormodtageradresser": null, + "bbox": [10.11312467, 56.16759268, 10.22440038, 56.24137862], + "visueltcenter": [10.15922351, 56.20167527], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 8, + "dagi_id": "198200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8210", + "nr": "8210", + "navn": "Aarhus V", + "stormodtageradresser": null, + "bbox": [10.11379647, 56.1568982, 10.19124054, 56.18503979], + "visueltcenter": [10.15819911, 56.17162148], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198210" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8220", + "nr": "8220", + "navn": "Brabrand", + "stormodtageradresser": null, + "bbox": [10.0215633, 56.13757284, 10.14840279, 56.18138974], + "visueltcenter": [10.06788413, 56.15788265], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8230", + "nr": "8230", + "navn": "Åbyhøj", + "stormodtageradresser": null, + "bbox": [10.13316829, 56.13856371, 10.18084458, 56.16275101], + "visueltcenter": [10.1605019, 56.15196052], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8240", + "nr": "8240", + "navn": "Risskov", + "stormodtageradresser": null, + "bbox": [10.18336596, 56.16803581, 10.3173181, 56.22417391], + "visueltcenter": [10.24680782, 56.18719668], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198240" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8250", + "nr": "8250", + "navn": "Egå", + "stormodtageradresser": null, + "bbox": [10.23924069, 56.19778747, 10.38763736, 56.24509987], + "visueltcenter": [10.29989608, 56.22214938], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198250" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8260", + "nr": "8260", + "navn": "Viby J", + "stormodtageradresser": null, + "bbox": [10.02368933, 56.10569398, 10.19030486, 56.14764523], + "visueltcenter": [10.13778473, 56.12635244], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198260" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8270", + "nr": "8270", + "navn": "Højbjerg", + "stormodtageradresser": null, + "bbox": [10.14477122, 56.0721646, 10.38012295, 56.13360481], + "visueltcenter": [10.28961018, 56.09903701], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8300", + "nr": "8300", + "navn": "Odder", + "stormodtageradresser": null, + "bbox": [10.00876179, 55.78997439, 10.43711096, 56.04388152], + "visueltcenter": [10.24464778, 55.92457284], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0727", + "kode": "0727", + "navn": "Odder" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "198300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8305", + "nr": "8305", + "navn": "Samsø", + "stormodtageradresser": null, + "bbox": [10.3719052, 55.67427597, 10.89580293, 56.05769229], + "visueltcenter": [10.68434089, 55.91180366], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0741", + "kode": "0741", + "navn": "Samsø" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "198305" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8310", + "nr": "8310", + "navn": "Tranbjerg J", + "stormodtageradresser": null, + "bbox": [10.08674941, 56.0548421, 10.17622408, 56.10968667], + "visueltcenter": [10.13924601, 56.09423322], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8320", + "nr": "8320", + "navn": "Mårslet", + "stormodtageradresser": null, + "bbox": [10.11493982, 56.04175285, 10.21512236, 56.0995967], + "visueltcenter": [10.15312251, 56.0658713], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8330", + "nr": "8330", + "navn": "Beder", + "stormodtageradresser": null, + "bbox": [10.19188453, 56.03736221, 10.40201499, 56.08844851], + "visueltcenter": [10.24584275, 56.06302044], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8340", + "nr": "8340", + "navn": "Malling", + "stormodtageradresser": null, + "bbox": [10.1146464, 56.00375773, 10.40532786, 56.057939], + "visueltcenter": [10.2151148, 56.02634501], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0727", + "kode": "0727", + "navn": "Odder" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198340" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8350", + "nr": "8350", + "navn": "Hundslund", + "stormodtageradresser": null, + "bbox": [10.01484738, 55.87209211, 10.09510379, 55.95805014], + "visueltcenter": [10.05739341, 55.90552571], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0727", + "kode": "0727", + "navn": "Odder" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198350" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8355", + "nr": "8355", + "navn": "Solbjerg", + "stormodtageradresser": null, + "bbox": [10.03834349, 55.99505555, 10.13136357, 56.06717707], + "visueltcenter": [10.0866212, 56.03661436], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198355" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8361", + "nr": "8361", + "navn": "Hasselager", + "stormodtageradresser": null, + "bbox": [10.04311577, 56.0739985, 10.1285811, 56.12806136], + "visueltcenter": [10.08245179, 56.10123046], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198361" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8362", + "nr": "8362", + "navn": "Hørning", + "stormodtageradresser": null, + "bbox": [9.93357576, 56.051527, 10.09435505, 56.12114016], + "visueltcenter": [10.0135704, 56.09369625], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198362" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8370", + "nr": "8370", + "navn": "Hadsten", + "stormodtageradresser": null, + "bbox": [9.93986904, 56.28445924, 10.24328493, 56.39505942], + "visueltcenter": [10.0289852, 56.33866468], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "198370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8380", + "nr": "8380", + "navn": "Trige", + "stormodtageradresser": null, + "bbox": [10.11466245, 56.21589725, 10.19166817, 56.30935704], + "visueltcenter": [10.16086107, 56.27022295], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198380" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8381", + "nr": "8381", + "navn": "Tilst", + "stormodtageradresser": null, + "bbox": [10.03426133, 56.1689403, 10.13919117, 56.2184898], + "visueltcenter": [10.09750556, 56.18928869], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198381" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8382", + "nr": "8382", + "navn": "Hinnerup", + "stormodtageradresser": null, + "bbox": [9.93860375, 56.21581011, 10.13648966, 56.30723291], + "visueltcenter": [10.06719333, 56.25949156], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198382" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8400", + "nr": "8400", + "navn": "Ebeltoft", + "stormodtageradresser": null, + "bbox": [10.52011728, 56.01836611, 11.11949313, 56.33854024], + "visueltcenter": [10.82632626, 56.14931257], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8410", + "nr": "8410", + "navn": "Rønde", + "stormodtageradresser": null, + "bbox": [10.36639642, 56.25089985, 10.68037663, 56.38344282], + "visueltcenter": [10.48173371, 56.30328793], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198410" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8420", + "nr": "8420", + "navn": "Knebel", + "stormodtageradresser": null, + "bbox": [10.30301948, 56.03150611, 10.68394884, 56.27228248], + "visueltcenter": [10.45208963, 56.15222183], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198420" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8444", + "nr": "8444", + "navn": "Balle", + "stormodtageradresser": null, + "bbox": [10.71498213, 56.16968012, 11.20176541, 56.34351688], + "visueltcenter": [11.11035786, 56.20496905], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198444" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8450", + "nr": "8450", + "navn": "Hammel", + "stormodtageradresser": null, + "bbox": [9.76608677, 56.21256727, 9.97474609, 56.32226595], + "visueltcenter": [9.8817943, 56.26356721], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198450" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8462", + "nr": "8462", + "navn": "Harlev J", + "stormodtageradresser": null, + "bbox": [9.95094241, 56.10729649, 10.06304076, 56.18010832], + "visueltcenter": [9.99991491, 56.14059283], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198462" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8464", + "nr": "8464", + "navn": "Galten", + "stormodtageradresser": null, + "bbox": [9.84978453, 56.09711636, 9.99767096, 56.21526214], + "visueltcenter": [9.91179535, 56.17800104], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198464" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8471", + "nr": "8471", + "navn": "Sabro", + "stormodtageradresser": null, + "bbox": [9.90483013, 56.17648041, 10.10837555, 56.25104254], + "visueltcenter": [10.01547147, 56.21127538], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198471" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8472", + "nr": "8472", + "navn": "Sporup", + "stormodtageradresser": null, + "bbox": [9.7671975, 56.17836137, 9.89820257, 56.23566346], + "visueltcenter": [9.83610781, 56.20907595], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198472" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8500", + "nr": "8500", + "navn": "Grenaa", + "stormodtageradresser": null, + "bbox": [10.70988716, 56.20359818, 11.47485627, 56.87324606], + "visueltcenter": [11.08217337, 56.43069147], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8520", + "nr": "8520", + "navn": "Lystrup", + "stormodtageradresser": null, + "bbox": [10.16633309, 56.21482126, 10.26593246, 56.26457607], + "visueltcenter": [10.22716475, 56.24438884], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198520" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8530", + "nr": "8530", + "navn": "Hjortshøj", + "stormodtageradresser": null, + "bbox": [10.16164038, 56.23416429, 10.29922561, 56.33099784], + "visueltcenter": [10.20502083, 56.29464717], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198530" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8541", + "nr": "8541", + "navn": "Skødstrup", + "stormodtageradresser": null, + "bbox": [10.23371613, 56.23173093, 10.4320249, 56.31335954], + "visueltcenter": [10.36793908, 56.26151082], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198541" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8543", + "nr": "8543", + "navn": "Hornslet", + "stormodtageradresser": null, + "bbox": [10.15870898, 56.27857957, 10.39907896, 56.36656267], + "visueltcenter": [10.29717181, 56.33260256], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "198543" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8544", + "nr": "8544", + "navn": "Mørke", + "stormodtageradresser": null, + "bbox": [10.19205605, 56.30615833, 10.43480103, 56.41006678], + "visueltcenter": [10.38246065, 56.35508218], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "198544" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8550", + "nr": "8550", + "navn": "Ryomgård", + "stormodtageradresser": null, + "bbox": [10.36666011, 56.33951179, 10.56927687, 56.42052449], + "visueltcenter": [10.50027849, 56.38481233], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8560", + "nr": "8560", + "navn": "Kolind", + "stormodtageradresser": null, + "bbox": [10.52256255, 56.30290051, 10.73340363, 56.41775017], + "visueltcenter": [10.61106988, 56.34682936], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8570", + "nr": "8570", + "navn": "Trustrup", + "stormodtageradresser": null, + "bbox": [10.67168737, 56.31039192, 10.84225746, 56.40459267], + "visueltcenter": [10.74217288, 56.36287517], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198570" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8581", + "nr": "8581", + "navn": "Nimtofte", + "stormodtageradresser": null, + "bbox": [10.49240369, 56.38663761, 10.67972477, 56.47334215], + "visueltcenter": [10.53988094, 56.42793946], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198581" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8585", + "nr": "8585", + "navn": "Glesborg", + "stormodtageradresser": null, + "bbox": [10.523658, 56.4446311, 10.80713859, 56.81103656], + "visueltcenter": [10.64766235, 56.58757292], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198585" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8586", + "nr": "8586", + "navn": "Ørum Djurs", + "stormodtageradresser": null, + "bbox": [10.56020514, 56.40146419, 10.74116337, 56.48861638], + "visueltcenter": [10.62703709, 56.44956016], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198586" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8592", + "nr": "8592", + "navn": "Anholt", + "stormodtageradresser": null, + "bbox": [10.92372946, 56.40710988, 12.19303494, 57.09969105], + "visueltcenter": [11.49010919, 56.77566641], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "198592" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8600", + "nr": "8600", + "navn": "Silkeborg", + "stormodtageradresser": null, + "bbox": [9.3620449, 56.09605109, 9.76157469, 56.26916226], + "visueltcenter": [9.4900253, 56.17147071], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8620", + "nr": "8620", + "navn": "Kjellerup", + "stormodtageradresser": null, + "bbox": [9.25198316, 56.20026007, 9.5769845, 56.37008322], + "visueltcenter": [9.39095532, 56.2882506], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8632", + "nr": "8632", + "navn": "Lemming", + "stormodtageradresser": null, + "bbox": [9.46974859, 56.20676946, 9.60648127, 56.26736073], + "visueltcenter": [9.55711799, 56.24319222], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198632" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8641", + "nr": "8641", + "navn": "Sorring", + "stormodtageradresser": null, + "bbox": [9.73928244, 56.15857543, 9.8616471, 56.20387666], + "visueltcenter": [9.77449496, 56.17906349], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198641" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8643", + "nr": "8643", + "navn": "Ans By", + "stormodtageradresser": null, + "bbox": [9.53993144, 56.26023835, 9.67940023, 56.32015106], + "visueltcenter": [9.6247327, 56.28777753], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198643" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8653", + "nr": "8653", + "navn": "Them", + "stormodtageradresser": null, + "bbox": [9.39583165, 56.0453024, 9.64191517, 56.12629753], + "visueltcenter": [9.55044283, 56.08668443], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198653" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8654", + "nr": "8654", + "navn": "Bryrup", + "stormodtageradresser": null, + "bbox": [9.41087216, 55.99148323, 9.60701004, 56.06808443], + "visueltcenter": [9.47060993, 56.02488921], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198654" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8660", + "nr": "8660", + "navn": "Skanderborg", + "stormodtageradresser": null, + "bbox": [9.65207402, 55.94559088, 10.06954249, 56.14578766], + "visueltcenter": [9.89235588, 56.02388208], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0727", + "kode": "0727", + "navn": "Odder" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0751", + "kode": "0751", + "navn": "Aarhus" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198660" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8670", + "nr": "8670", + "navn": "Låsby", + "stormodtageradresser": null, + "bbox": [9.74567383, 56.1286736, 9.87089002, 56.17161213], + "visueltcenter": [9.79899795, 56.14838747], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8680", + "nr": "8680", + "navn": "Ry", + "stormodtageradresser": null, + "bbox": [9.61252987, 56.03770178, 9.86530188, 56.13878264], + "visueltcenter": [9.71786836, 56.08481116], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198680" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8700", + "nr": "8700", + "navn": "Horsens", + "stormodtageradresser": null, + "bbox": [9.68335646, 55.79859017, 10.05384663, 55.94265158], + "visueltcenter": [9.89301425, 55.86597915], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 7, + "dagi_id": "198700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8721", + "nr": "8721", + "navn": "Daugård", + "stormodtageradresser": null, + "bbox": [9.66873318, 55.68559889, 9.77810532, 55.75583779], + "visueltcenter": [9.70789065, 55.72499013], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0630", + "kode": "0630", + "navn": "Vejle" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198721" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8722", + "nr": "8722", + "navn": "Hedensted", + "stormodtageradresser": null, + "bbox": [9.58446234, 55.73671129, 9.81265301, 55.79784709], + "visueltcenter": [9.71130088, 55.76508387], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198722" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8723", + "nr": "8723", + "navn": "Løsning", + "stormodtageradresser": null, + "bbox": [9.59246235, 55.78171339, 9.78611936, 55.8432401], + "visueltcenter": [9.69416947, 55.81385497], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198723" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8732", + "nr": "8732", + "navn": "Hovedgård", + "stormodtageradresser": null, + "bbox": [9.87416385, 55.92278023, 10.03645802, 55.99329184], + "visueltcenter": [9.98616441, 55.95626604], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198732" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8740", + "nr": "8740", + "navn": "Brædstrup", + "stormodtageradresser": null, + "bbox": [9.46345239, 55.90326949, 9.75451244, 56.07109987], + "visueltcenter": [9.59236493, 55.96052136], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 9, + "dagi_id": "198740" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8751", + "nr": "8751", + "navn": "Gedved", + "stormodtageradresser": null, + "bbox": [9.80138422, 55.91338653, 9.92131182, 55.97397354], + "visueltcenter": [9.86197889, 55.93439431], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0746", + "kode": "0746", + "navn": "Skanderborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198751" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8752", + "nr": "8752", + "navn": "Østbirk", + "stormodtageradresser": null, + "bbox": [9.68351228, 55.92898272, 9.82089344, 56.01962001], + "visueltcenter": [9.75712583, 55.96885636], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198752" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8762", + "nr": "8762", + "navn": "Flemming", + "stormodtageradresser": null, + "bbox": [9.63347544, 55.82509038, 9.69681999, 55.91469817], + "visueltcenter": [9.66642959, 55.89442946], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198762" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8763", + "nr": "8763", + "navn": "Rask Mølle", + "stormodtageradresser": null, + "bbox": [9.56434342, 55.85778677, 9.64862439, 55.92514247], + "visueltcenter": [9.6137501, 55.87835123], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198763" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8765", + "nr": "8765", + "navn": "Klovborg", + "stormodtageradresser": null, + "bbox": [9.44002352, 55.89942536, 9.55985522, 55.96876555], + "visueltcenter": [9.48555987, 55.92463273], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198765" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8766", + "nr": "8766", + "navn": "Nørre Snede", + "stormodtageradresser": null, + "bbox": [9.32648204, 55.90655871, 9.50421934, 56.02223838], + "visueltcenter": [9.41496508, 55.96381394], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0756", + "kode": "0756", + "navn": "Ikast-Brande" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198766" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8781", + "nr": "8781", + "navn": "Stenderup", + "stormodtageradresser": null, + "bbox": [9.76498442, 55.76538492, 9.85179273, 55.82997439], + "visueltcenter": [9.80232769, 55.79039351], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198781" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8783", + "nr": "8783", + "navn": "Hornsyld", + "stormodtageradresser": null, + "bbox": [9.77499762, 55.72841863, 9.90791156, 55.80865724], + "visueltcenter": [9.85180061, 55.76234096], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0766", + "kode": "0766", + "navn": "Hedensted" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198783" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8789", + "nr": "8789", + "navn": "Endelave", + "stormodtageradresser": null, + "bbox": [10.14214999, 55.68035297, 10.46189506, 55.86071415], + "visueltcenter": [10.30820541, 55.75329623], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0615", + "kode": "0615", + "navn": "Horsens" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-06-01T21:16:01.264Z", + "geo_version": 1, + "dagi_id": "378119" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8799", + "nr": "8799", + "navn": "Tunø", + "stormodtageradresser": null, + "bbox": [10.33690799, 55.88133575, 10.49834183, 56.04954575], + "visueltcenter": [10.44454187, 55.9486075], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0727", + "kode": "0727", + "navn": "Odder" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2017-06-01T21:16:01.264Z", + "geo_version": 1, + "dagi_id": "378117" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8800", + "nr": "8800", + "navn": "Viborg", + "stormodtageradresser": null, + "bbox": [9.05093736, 56.33963758, 9.56674318, 56.53262454], + "visueltcenter": [9.36897659, 56.41681148], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8830", + "nr": "8830", + "navn": "Tjele", + "stormodtageradresser": null, + "bbox": [9.38282257, 56.42420539, 9.7969732, 56.59156144], + "visueltcenter": [9.60208409, 56.49762699], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198830" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8831", + "nr": "8831", + "navn": "Løgstrup", + "stormodtageradresser": null, + "bbox": [9.20440844, 56.47556868, 9.40945138, 56.57594638], + "visueltcenter": [9.32656972, 56.51759246], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198831" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8832", + "nr": "8832", + "navn": "Skals", + "stormodtageradresser": null, + "bbox": [9.26914517, 56.53650429, 9.47871797, 56.6719278], + "visueltcenter": [9.35963562, 56.59071095], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "198832" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8840", + "nr": "8840", + "navn": "Rødkærsbro", + "stormodtageradresser": null, + "bbox": [9.43660554, 56.30659887, 9.58123206, 56.38206168], + "visueltcenter": [9.50444327, 56.35360504], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198840" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8850", + "nr": "8850", + "navn": "Bjerringbro", + "stormodtageradresser": null, + "bbox": [9.51431381, 56.29911988, 9.77603435, 56.46780348], + "visueltcenter": [9.64257403, 56.36051392], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8860", + "nr": "8860", + "navn": "Ulstrup", + "stormodtageradresser": null, + "bbox": [9.71481752, 56.32538567, 9.85612419, 56.45070912], + "visueltcenter": [9.78710533, 56.3800683], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198860" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8870", + "nr": "8870", + "navn": "Langå", + "stormodtageradresser": null, + "bbox": [9.81796656, 56.30620716, 9.98583337, 56.45100447], + "visueltcenter": [9.90941177, 56.3806496], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198870" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8881", + "nr": "8881", + "navn": "Thorsø", + "stormodtageradresser": null, + "bbox": [9.69212179, 56.26795745, 9.85221604, 56.34992056], + "visueltcenter": [9.79439741, 56.3103006], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198881" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8882", + "nr": "8882", + "navn": "Fårvang", + "stormodtageradresser": null, + "bbox": [9.65558127, 56.23889701, 9.78337021, 56.30682436], + "visueltcenter": [9.70492587, 56.27196318], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198882" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8883", + "nr": "8883", + "navn": "Gjern", + "stormodtageradresser": null, + "bbox": [9.68737375, 56.1885462, 9.78776449, 56.2633795], + "visueltcenter": [9.73984728, 56.22223999], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0740", + "kode": "0740", + "navn": "Silkeborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198883" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8900", + "nr": "8900", + "navn": "Randers C", + "stormodtageradresser": null, + "bbox": [10.01189389, 56.45501239, 10.05369418, 56.4720305], + "visueltcenter": [10.0331817, 56.46401254], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8920", + "nr": "8920", + "navn": "Randers NV", + "stormodtageradresser": null, + "bbox": [9.77549924, 56.41177299, 10.04404759, 56.53537127], + "visueltcenter": [9.88044731, 56.48050883], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "402494" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8930", + "nr": "8930", + "navn": "Randers NØ", + "stormodtageradresser": null, + "bbox": [10.01917286, 56.45485471, 10.23410778, 56.56564157], + "visueltcenter": [10.1724293, 56.50265825], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "402495" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8940", + "nr": "8940", + "navn": "Randers SV", + "stormodtageradresser": null, + "bbox": [9.94477997, 56.37167269, 10.11724215, 56.45827185], + "visueltcenter": [10.01231946, 56.41476356], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "402496" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8950", + "nr": "8950", + "navn": "Ørsted", + "stormodtageradresser": null, + "bbox": [10.21635915, 56.46633309, 10.49187469, 56.61003705], + "visueltcenter": [10.32882868, 56.53413791], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198950" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8960", + "nr": "8960", + "navn": "Randers SØ", + "stormodtageradresser": null, + "bbox": [10.03756829, 56.37071952, 10.3080808, 56.48083013], + "visueltcenter": [10.17671406, 56.42912946], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0710", + "kode": "0710", + "navn": "Favrskov" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "402497" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8961", + "nr": "8961", + "navn": "Allingåbro", + "stormodtageradresser": null, + "bbox": [10.26295329, 56.41792125, 10.59348691, 56.62048871], + "visueltcenter": [10.49037138, 56.49705855], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198961" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8963", + "nr": "8963", + "navn": "Auning", + "stormodtageradresser": null, + "bbox": [10.26564938, 56.38355462, 10.51352753, 56.47534075], + "visueltcenter": [10.38424574, 56.42921057], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0706", + "kode": "0706", + "navn": "Syddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0707", + "kode": "0707", + "navn": "Norddjurs" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "198963" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8970", + "nr": "8970", + "navn": "Havndal", + "stormodtageradresser": null, + "bbox": [10.07896805, 56.56120786, 10.65875214, 56.72276442], + "visueltcenter": [10.26167957, 56.6517573], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8981", + "nr": "8981", + "navn": "Spentrup", + "stormodtageradresser": null, + "bbox": [9.94703941, 56.50419183, 10.13616554, 56.59697381], + "visueltcenter": [10.0192493, 56.54082727], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198981" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8983", + "nr": "8983", + "navn": "Gjerlev J", + "stormodtageradresser": null, + "bbox": [10.00680429, 56.53658245, 10.24795861, 56.63789284], + "visueltcenter": [10.10165114, 56.58244324], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "198983" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/8990", + "nr": "8990", + "navn": "Fårup", + "stormodtageradresser": null, + "bbox": [9.75004539, 56.51649031, 9.97347307, 56.59575063], + "visueltcenter": [9.84538694, 56.55632319], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "198990" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9000", + "nr": "9000", + "navn": "Aalborg", + "stormodtageradresser": null, + "bbox": [9.75574674, 57.0115898, 9.97476555, 57.08729727], + "visueltcenter": [9.8350492, 57.05171431], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199000" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9200", + "nr": "9200", + "navn": "Aalborg SV", + "stormodtageradresser": null, + "bbox": [9.77966613, 56.99200338, 9.91502709, 57.02645665], + "visueltcenter": [9.86220561, 57.00928951], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199200" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9210", + "nr": "9210", + "navn": "Aalborg SØ", + "stormodtageradresser": null, + "bbox": [9.90268039, 56.98179914, 9.96789509, 57.02685565], + "visueltcenter": [9.93295578, 56.9991663], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199210" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9220", + "nr": "9220", + "navn": "Aalborg Øst", + "stormodtageradresser": null, + "bbox": [9.95395948, 57.00530139, 10.08685339, 57.0823778], + "visueltcenter": [10.00949733, 57.05425152], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199220" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9230", + "nr": "9230", + "navn": "Svenstrup J", + "stormodtageradresser": null, + "bbox": [9.76119094, 56.91027222, 9.96621894, 57.00385401], + "visueltcenter": [9.86815189, 56.9647583], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199230" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9240", + "nr": "9240", + "navn": "Nibe", + "stormodtageradresser": null, + "bbox": [9.38921271, 56.8327588, 9.81029366, 57.05500474], + "visueltcenter": [9.57985536, 56.94881207], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199240" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9260", + "nr": "9260", + "navn": "Gistrup", + "stormodtageradresser": null, + "bbox": [9.91827376, 56.88861053, 10.09388057, 57.02042775], + "visueltcenter": [10.01379029, 56.93195612], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199260" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9270", + "nr": "9270", + "navn": "Klarup", + "stormodtageradresser": null, + "bbox": [10.01238878, 56.98833997, 10.09636762, 57.04732827], + "visueltcenter": [10.05559807, 57.01911272], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199270" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9280", + "nr": "9280", + "navn": "Storvorde", + "stormodtageradresser": null, + "bbox": [10.02049693, 56.80630198, 10.63589972, 57.04081085], + "visueltcenter": [10.27569023, 56.91678716], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199280" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9293", + "nr": "9293", + "navn": "Kongerslev", + "stormodtageradresser": null, + "bbox": [10.03648749, 56.83966347, 10.17351839, 56.94401767], + "visueltcenter": [10.1135906, 56.89578273], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199293" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9300", + "nr": "9300", + "navn": "Sæby", + "stormodtageradresser": null, + "bbox": [10.31941062, 57.07273806, 10.77127656, 57.38011275], + "visueltcenter": [10.57327556, 57.2843629], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199300" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9310", + "nr": "9310", + "navn": "Vodskov", + "stormodtageradresser": null, + "bbox": [9.97668813, 57.02578261, 10.1984267, 57.17328642], + "visueltcenter": [10.09257652, 57.09538719], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199310" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9320", + "nr": "9320", + "navn": "Hjallerup", + "stormodtageradresser": null, + "bbox": [10.0210368, 57.11164459, 10.23295296, 57.25043876], + "visueltcenter": [10.13790859, 57.17870119], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199320" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9330", + "nr": "9330", + "navn": "Dronninglund", + "stormodtageradresser": null, + "bbox": [10.18149359, 57.10230731, 10.46672614, 57.26908812], + "visueltcenter": [10.31020366, 57.21127809], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199330" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9340", + "nr": "9340", + "navn": "Asaa", + "stormodtageradresser": null, + "bbox": [10.3169984, 57.03886576, 10.78326397, 57.19733588], + "visueltcenter": [10.44405468, 57.13326579], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199340" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9352", + "nr": "9352", + "navn": "Dybvad", + "stormodtageradresser": null, + "bbox": [10.20091126, 57.23276349, 10.43986754, 57.31749538], + "visueltcenter": [10.32334518, 57.28497909], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199352" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9362", + "nr": "9362", + "navn": "Gandrup", + "stormodtageradresser": null, + "bbox": [10.12733485, 56.99293337, 10.26394211, 57.11132523], + "visueltcenter": [10.1977671, 57.05355839], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199362" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9370", + "nr": "9370", + "navn": "Hals", + "stormodtageradresser": null, + "bbox": [10.19434273, 56.85177401, 10.9394163, 57.1108717], + "visueltcenter": [10.65368838, 56.96384115], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199370" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9380", + "nr": "9380", + "navn": "Vestbjerg", + "stormodtageradresser": null, + "bbox": [9.93918894, 57.10338811, 10.00368034, 57.14687409], + "visueltcenter": [9.97550463, 57.12732919], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199380" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9381", + "nr": "9381", + "navn": "Sulsted", + "stormodtageradresser": null, + "bbox": [9.85125901, 57.1336071, 10.04798519, 57.19203209], + "visueltcenter": [9.99174315, 57.16265215], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199381" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9382", + "nr": "9382", + "navn": "Tylstrup", + "stormodtageradresser": null, + "bbox": [9.78234622, 57.1716785, 10.05191898, 57.24319557], + "visueltcenter": [9.9350316, 57.20308117], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199382" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9400", + "nr": "9400", + "navn": "Nørresundby", + "stormodtageradresser": null, + "bbox": [9.84425628, 57.0507482, 10.0020063, 57.15290328], + "visueltcenter": [9.92809079, 57.08119416], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199400" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9430", + "nr": "9430", + "navn": "Vadum", + "stormodtageradresser": null, + "bbox": [9.77858136, 57.07968765, 9.92964576, 57.18961905], + "visueltcenter": [9.8563612, 57.11542161], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199430" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9440", + "nr": "9440", + "navn": "Aabybro", + "stormodtageradresser": null, + "bbox": [9.58876678, 57.04744142, 9.87887666, 57.239173], + "visueltcenter": [9.76743314, 57.16282327], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199440" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9460", + "nr": "9460", + "navn": "Brovst", + "stormodtageradresser": null, + "bbox": [9.19778002, 57.01618494, 9.6841278, 57.38892623], + "visueltcenter": [9.5353613, 57.10716869], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199460" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9480", + "nr": "9480", + "navn": "Løkken", + "stormodtageradresser": null, + "bbox": [9.00495064, 57.29277315, 9.89330711, 57.59279814], + "visueltcenter": [9.65510765, 57.38233116], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199480" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9490", + "nr": "9490", + "navn": "Pandrup", + "stormodtageradresser": null, + "bbox": [9.24860795, 57.16693786, 9.74508252, 57.36425514], + "visueltcenter": [9.65450533, 57.20322545], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199490" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9492", + "nr": "9492", + "navn": "Blokhus", + "stormodtageradresser": null, + "bbox": [9.14669996, 57.21990536, 9.65748067, 57.45016818], + "visueltcenter": [9.57722094, 57.25739854], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199492" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9493", + "nr": "9493", + "navn": "Saltum", + "stormodtageradresser": null, + "bbox": [9.14576725, 57.22422755, 9.76779496, 57.45150334], + "visueltcenter": [9.69608315, 57.26602114], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199493" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9500", + "nr": "9500", + "navn": "Hobro", + "stormodtageradresser": null, + "bbox": [9.52890955, 56.54439397, 10.00008069, 56.74284181], + "visueltcenter": [9.77366901, 56.6528756], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "199500" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9510", + "nr": "9510", + "navn": "Arden", + "stormodtageradresser": null, + "bbox": [9.77136929, 56.71761963, 10.05810287, 56.82687717], + "visueltcenter": [9.94260419, 56.76264148], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199510" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9520", + "nr": "9520", + "navn": "Skørping", + "stormodtageradresser": null, + "bbox": [9.70229141, 56.78604133, 10.08495935, 56.90797527], + "visueltcenter": [9.92696601, 56.84944104], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199520" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9530", + "nr": "9530", + "navn": "Støvring", + "stormodtageradresser": null, + "bbox": [9.70294221, 56.83635606, 9.95338097, 56.96584239], + "visueltcenter": [9.80945918, 56.89267972], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199530" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9541", + "nr": "9541", + "navn": "Suldrup", + "stormodtageradresser": null, + "bbox": [9.60429725, 56.79350059, 9.76884657, 56.90450967], + "visueltcenter": [9.68119202, 56.84292865], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199541" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9550", + "nr": "9550", + "navn": "Mariager", + "stormodtageradresser": null, + "bbox": [9.86631597, 56.56804624, 10.11453438, 56.69764259], + "visueltcenter": [10.0220988, 56.63765951], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0730", + "kode": "0730", + "navn": "Randers" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199550" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9560", + "nr": "9560", + "navn": "Hadsund", + "stormodtageradresser": null, + "bbox": [9.94995946, 56.66448035, 10.86712139, 56.87896836], + "visueltcenter": [10.41645939, 56.77688954], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199560" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9574", + "nr": "9574", + "navn": "Bælum", + "stormodtageradresser": null, + "bbox": [10.07264922, 56.78332756, 10.23057687, 56.87259235], + "visueltcenter": [10.12654857, 56.8298458], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0851", + "kode": "0851", + "navn": "Aalborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199574" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9575", + "nr": "9575", + "navn": "Terndrup", + "stormodtageradresser": null, + "bbox": [9.97175741, 56.76166819, 10.10012753, 56.83997542], + "visueltcenter": [10.04422607, 56.81450196], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199575" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9600", + "nr": "9600", + "navn": "Aars", + "stormodtageradresser": null, + "bbox": [9.36321023, 56.72633778, 9.64116632, 56.89925705], + "visueltcenter": [9.49610809, 56.80003403], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 6, + "dagi_id": "199600" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9610", + "nr": "9610", + "navn": "Nørager", + "stormodtageradresser": null, + "bbox": [9.56373321, 56.67029404, 9.81361854, 56.80767887], + "visueltcenter": [9.63042311, 56.74794316], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 5, + "dagi_id": "199610" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9620", + "nr": "9620", + "navn": "Aalestrup", + "stormodtageradresser": null, + "bbox": [9.39001775, 56.63070366, 9.5994806, 56.74340551], + "visueltcenter": [9.4967184, 56.69297871], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0840", + "kode": "0840", + "navn": "Rebild" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0846", + "kode": "0846", + "navn": "Mariagerfjord" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199620" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9631", + "nr": "9631", + "navn": "Gedsted", + "stormodtageradresser": null, + "bbox": [9.26313447, 56.64897037, 9.42290929, 56.73231675], + "visueltcenter": [9.36542938, 56.69090841], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199631" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9632", + "nr": "9632", + "navn": "Møldrup", + "stormodtageradresser": null, + "bbox": [9.40233244, 56.55873945, 9.60019389, 56.65243502], + "visueltcenter": [9.50805968, 56.6088695], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0791", + "kode": "0791", + "navn": "Viborg" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199632" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9640", + "nr": "9640", + "navn": "Farsø", + "stormodtageradresser": null, + "bbox": [9.12287436, 56.64687776, 9.43673614, 56.89849182], + "visueltcenter": [9.27748567, 56.77310507], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199640" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9670", + "nr": "9670", + "navn": "Løgstør", + "stormodtageradresser": null, + "bbox": [9.09793269, 56.82890658, 9.44002665, 57.03083818], + "visueltcenter": [9.30949603, 56.95819912], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 4, + "dagi_id": "199670" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9681", + "nr": "9681", + "navn": "Ranum", + "stormodtageradresser": null, + "bbox": [8.99886542, 56.84952634, 9.26422612, 56.95841968], + "visueltcenter": [9.12839085, 56.89861349], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0820", + "kode": "0820", + "navn": "Vesthimmerlands" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199681" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9690", + "nr": "9690", + "navn": "Fjerritslev", + "stormodtageradresser": null, + "bbox": [9.02986514, 57.00567671, 9.44368669, 57.40418599], + "visueltcenter": [9.20878724, 57.12742277], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199690" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9700", + "nr": "9700", + "navn": "Brønderslev", + "stormodtageradresser": null, + "bbox": [9.69816746, 57.19955835, 10.14228991, 57.34380261], + "visueltcenter": [9.88277134, 57.28432949], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0849", + "kode": "0849", + "navn": "Jammerbugt" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199700" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9740", + "nr": "9740", + "navn": "Jerslev J", + "stormodtageradresser": null, + "bbox": [10.02613271, 57.24523011, 10.22394966, 57.33968335], + "visueltcenter": [10.11084423, 57.29699349], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199740" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9750", + "nr": "9750", + "navn": "Østervrå", + "stormodtageradresser": null, + "bbox": [10.16309285, 57.28146978, 10.35805659, 57.3855578], + "visueltcenter": [10.27081316, 57.34034984], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199750" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9760", + "nr": "9760", + "navn": "Vrå", + "stormodtageradresser": null, + "bbox": [9.78326893, 57.31366602, 10.10563599, 57.4111429], + "visueltcenter": [9.87742317, 57.37190853], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0810", + "kode": "0810", + "navn": "Brønderslev" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199760" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9800", + "nr": "9800", + "navn": "Hjørring", + "stormodtageradresser": null, + "bbox": [8.88468146, 57.37320608, 10.18224702, 57.98645076], + "visueltcenter": [9.2956345, 57.70230652], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199800" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9830", + "nr": "9830", + "navn": "Tårs", + "stormodtageradresser": null, + "bbox": [10.04371089, 57.32584872, 10.24427038, 57.42567241], + "visueltcenter": [10.14317436, 57.37825187], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199830" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9850", + "nr": "9850", + "navn": "Hirtshals", + "stormodtageradresser": null, + "bbox": [9.37560448, 57.50617738, 10.10969969, 58.26262592], + "visueltcenter": [9.71496643, 57.94281241], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199850" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9870", + "nr": "9870", + "navn": "Sindal", + "stormodtageradresser": null, + "bbox": [10.123732, 57.37500922, 10.39280131, 57.55593402], + "visueltcenter": [10.24075136, 57.4674892], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 5, + "dagi_id": "199870" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9881", + "nr": "9881", + "navn": "Bindslev", + "stormodtageradresser": null, + "bbox": [10.08245774, 57.50358001, 10.3430891, 57.76334936], + "visueltcenter": [10.23668023, 57.57139797], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199881" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9900", + "nr": "9900", + "navn": "Frederikshavn", + "stormodtageradresser": null, + "bbox": [10.29635591, 57.34825549, 11.04393242, 57.61722487], + "visueltcenter": [10.72500277, 57.52270103], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2024-01-10T22:10:55.667Z", + "geo_ændret": "2024-01-10T22:10:55.667Z", + "geo_version": 6, + "dagi_id": "199900" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9940", + "nr": "9940", + "navn": "Læsø", + "stormodtageradresser": null, + "bbox": [10.68791713, 56.85544166, 11.72928781, 57.65160008], + "visueltcenter": [11.14575743, 57.18887848], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0825", + "kode": "0825", + "navn": "Læsø" + } + ], + "ændret": "2018-04-30T15:23:13.528Z", + "geo_ændret": "2014-11-04T16:01:00.879Z", + "geo_version": 1, + "dagi_id": "199940" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9970", + "nr": "9970", + "navn": "Strandby", + "stormodtageradresser": null, + "bbox": [10.43401211, 57.475913, 10.58653723, 57.56490263], + "visueltcenter": [10.52915912, 57.51074154], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 3, + "dagi_id": "199970" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9981", + "nr": "9981", + "navn": "Jerup", + "stormodtageradresser": null, + "bbox": [10.34659163, 57.49200445, 10.59921075, 57.58197217], + "visueltcenter": [10.43874206, 57.53549926], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199981" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9982", + "nr": "9982", + "navn": "Ålbæk", + "stormodtageradresser": null, + "bbox": [10.05551598, 57.51966093, 10.63889706, 57.82712313], + "visueltcenter": [10.40473272, 57.60572774], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + }, + { + "href": "https://api.dataforsyningen.dk/kommuner/0860", + "kode": "0860", + "navn": "Hjørring" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199982" + }, + { + "href": "https://api.dataforsyningen.dk/postnumre/9990", + "nr": "9990", + "navn": "Skagen", + "stormodtageradresser": null, + "bbox": [9.9758433, 57.58111866, 11.24698377, 58.25933653], + "visueltcenter": [10.48570715, 57.85540126], + "kommuner": [ + { + "href": "https://api.dataforsyningen.dk/kommuner/0813", + "kode": "0813", + "navn": "Frederikshavn" + } + ], + "ændret": "2023-03-24T22:28:38.837Z", + "geo_ændret": "2023-03-24T22:28:38.837Z", + "geo_version": 2, + "dagi_id": "199990" + } +] \ No newline at end of file diff --git a/DanishCvr/Responses/BaseAutoCompleteResultsResponse.cs b/DanishCvr/Responses/BaseAutoCompleteResultsResponse.cs new file mode 100644 index 0000000..eee03a7 --- /dev/null +++ b/DanishCvr/Responses/BaseAutoCompleteResultsResponse.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses; + +/// +/// Base Auto Complete Results Response (abstract). +/// +/// The result type. +public abstract class BaseAutoCompleteResultsResponse : BaseResponse +{ + /// + /// Results. + /// + public IEnumerable Results { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/BaseResponse.cs b/DanishCvr/Responses/BaseResponse.cs new file mode 100644 index 0000000..ccf60db --- /dev/null +++ b/DanishCvr/Responses/BaseResponse.cs @@ -0,0 +1,6 @@ +namespace DanishCvr.Responses; + +/// +/// Base Response (abstract). +/// +public abstract class BaseResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/BaseResultResponse.cs b/DanishCvr/Responses/BaseResultResponse.cs new file mode 100644 index 0000000..5732d5a --- /dev/null +++ b/DanishCvr/Responses/BaseResultResponse.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses; + +/// +/// Base Response (abstract). +/// +public abstract class BaseResultResponse : BaseResponse +{ + /// + /// Result. + /// + public TResult Result { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/BaseResultsResponse.cs b/DanishCvr/Responses/BaseResultsResponse.cs new file mode 100644 index 0000000..8a2cfe7 --- /dev/null +++ b/DanishCvr/Responses/BaseResultsResponse.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses; + +/// +/// Base Response (abstract). +/// +/// The result type. +public abstract class BaseResultsResponse : BaseResponse +{ + /// + /// Results. + /// + public IEnumerable Results { get; set; } = new List(); + + /// + /// Total Results. + /// Not the returned results, but the total number of results, + /// that matched the criteria. + /// + public long TotalResults { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/BusinessTypesResponse.cs b/DanishCvr/Responses/BusinessTypesResponse.cs new file mode 100644 index 0000000..01deca8 --- /dev/null +++ b/DanishCvr/Responses/BusinessTypesResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Business Types Response. +/// +public class BusinessTypesResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/CompaniesAutoCompleteResponse.cs b/DanishCvr/Responses/CompaniesAutoCompleteResponse.cs new file mode 100644 index 0000000..11f7bbe --- /dev/null +++ b/DanishCvr/Responses/CompaniesAutoCompleteResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Companies Auto Complete Response. +/// +public class CompaniesAutoCompleteResponse : BaseAutoCompleteResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/CompaniesResponse.cs b/DanishCvr/Responses/CompaniesResponse.cs new file mode 100644 index 0000000..09696ab --- /dev/null +++ b/DanishCvr/Responses/CompaniesResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Companies Response. +/// +public class CompaniesResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/CompaniesSearchResponse.cs b/DanishCvr/Responses/CompaniesSearchResponse.cs new file mode 100644 index 0000000..323bd9a --- /dev/null +++ b/DanishCvr/Responses/CompaniesSearchResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Companies Search Response. +/// +public class CompaniesSearchResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/CompanyResponse.cs b/DanishCvr/Responses/CompanyResponse.cs new file mode 100644 index 0000000..2b62896 --- /dev/null +++ b/DanishCvr/Responses/CompanyResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Company Response. +/// +public class CompanyResponse : BaseResultResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/IndustriesResponse.cs b/DanishCvr/Responses/IndustriesResponse.cs new file mode 100644 index 0000000..8be1e35 --- /dev/null +++ b/DanishCvr/Responses/IndustriesResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Industries Response. +/// +public class IndustriesResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Address.cs b/DanishCvr/Responses/Models/Address.cs new file mode 100644 index 0000000..4b42065 --- /dev/null +++ b/DanishCvr/Responses/Models/Address.cs @@ -0,0 +1,79 @@ +using System; + +namespace DanishCvr.Responses.Models; + +/// +/// Address. +/// +public class Address : DateAndPeriod +{ + /// + /// Country. + /// + public virtual string Country { get; set; } + + /// + /// City. + /// + public virtual City City { get; set; } = new(); + + /// + /// Street Name. + /// + public virtual string StreetName { get; set; } + + /// + /// Co Street Name. + /// + public virtual string CoStreetName { get; set; } + + /// + /// Postbox. + /// + public virtual string Postbox { get; set; } + + /// + /// House Number From. + /// + public virtual string HouseNumberFrom { get; set; } + + /// + /// House Number To. + /// + public virtual string HouseNumberTo { get; set; } + + /// + /// Letter From. + /// + public virtual string LetterFrom { get; set; } + + /// + /// Letter To. + /// + public virtual string LetterTo { get; set; } + + /// + /// Floor. + /// + public virtual string Floor { get; set; } + + /// + /// Door. + /// + public virtual string Door { get; set; } + + /// + /// Is Unlisted. + /// + public virtual bool IsUnlisted { get; set; } = false; + + /// + /// Validated At. + /// + public virtual DateTimeOffset? ValidatedAt { get; set; } + + /// + /// Validated At. + /// + public virtual bool? IsAddressValidationDiscontinued { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Addresses.cs b/DanishCvr/Responses/Models/Addresses.cs new file mode 100644 index 0000000..de713cf --- /dev/null +++ b/DanishCvr/Responses/Models/Addresses.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Addresses. +/// +public class Addresses +{ + /// + /// Current. + /// + public virtual Address Current { get; set; } + + /// + /// Latest. + /// + public virtual Address Latest { get; set; } + + /// + /// Historic Addresses. + /// + public virtual IEnumerable
HistoricAddresses { get; set; } = new List
(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AlternativeNamesses.cs b/DanishCvr/Responses/Models/AlternativeNamesses.cs new file mode 100644 index 0000000..4e02922 --- /dev/null +++ b/DanishCvr/Responses/Models/AlternativeNamesses.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Alternative Namesses. +/// +public class AlternativeNamesses +{ + /// + /// Names. + /// + public virtual IEnumerable Names { get; set; } = new List(); + + /// + /// Historic Names. + /// + public virtual IEnumerable HistoricNames { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AntiMoneyLaundering.cs b/DanishCvr/Responses/Models/AntiMoneyLaundering.cs new file mode 100644 index 0000000..90492fa --- /dev/null +++ b/DanishCvr/Responses/Models/AntiMoneyLaundering.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Anti Money Laundering +/// +public class AntiMoneyLaundering +{ + /// + /// Text. + /// + public virtual string Text { get; set; } + + /// + /// Activities. + /// + public virtual IEnumerable Activities { get; set; } = new List(); + + /// + /// Is Subjected To Law About Money Laundering And Terror Financing. + /// + public virtual bool? IsSubjectedToLawAboutMoneyLaunderingAndTerrorFinancing { get; set; } + + /// + /// Anti Money Laundering Officer. + /// + public virtual AntiMoneyLaunderingAppointees AntiMoneyLaunderingAppointees { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointee.cs b/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointee.cs new file mode 100644 index 0000000..1c0cf06 --- /dev/null +++ b/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointee.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Anti Money Laundering Appointee. +/// +public class AntiMoneyLaunderingAppointee : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointees.cs b/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointees.cs new file mode 100644 index 0000000..86d74cd --- /dev/null +++ b/DanishCvr/Responses/Models/AntiMoneyLaunderingAppointees.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Anti Money Laundering Appointees. +/// +public class AntiMoneyLaunderingAppointees +{ + /// + /// Current. + /// + public virtual AntiMoneyLaunderingAppointee Current { get; set; } + + /// + /// Historic Anti Money Laundering Appointees. + /// + public virtual IEnumerable HistoricAntiMoneyLaunderingAppointees { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AssociationRepresentative.cs b/DanishCvr/Responses/Models/AssociationRepresentative.cs new file mode 100644 index 0000000..86c06e5 --- /dev/null +++ b/DanishCvr/Responses/Models/AssociationRepresentative.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Association Representative. +/// +public class AssociationRepresentative : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AssociationRepresentatives.cs b/DanishCvr/Responses/Models/AssociationRepresentatives.cs new file mode 100644 index 0000000..ff027bd --- /dev/null +++ b/DanishCvr/Responses/Models/AssociationRepresentatives.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Association Representatives. +/// +public class AssociationRepresentatives +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Association Representatives. + /// + public virtual IEnumerable HistoricAssociationRepresentatives { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Auditing.cs b/DanishCvr/Responses/Models/Auditing.cs new file mode 100644 index 0000000..c090b64 --- /dev/null +++ b/DanishCvr/Responses/Models/Auditing.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Auditing. +/// +public class Auditing +{ + /// + /// Has Audit. + /// + public virtual bool? HasAudit { get; set; } + + /// + /// Auditor. + /// + public virtual Auditors Auditor { get; set; } + + /// + /// Sustainability Auditor. + /// + public virtual Auditors SustainabilityAuditor { get; set; } + + /// + /// Is Overtaken By Financial Stability Authority. + /// + public virtual bool? IsOvertakenByFinancialStabilityAuthority { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Auditor.cs b/DanishCvr/Responses/Models/Auditor.cs new file mode 100644 index 0000000..c699cd6 --- /dev/null +++ b/DanishCvr/Responses/Models/Auditor.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Auditor. +/// +public class Auditor : BaseRelation +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AuditorRegistration.cs b/DanishCvr/Responses/Models/AuditorRegistration.cs new file mode 100644 index 0000000..6c83b32 --- /dev/null +++ b/DanishCvr/Responses/Models/AuditorRegistration.cs @@ -0,0 +1,37 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Auditor Registration. +/// +public class AuditorRegistration +{ + /// + /// Type. + /// + public virtual string Type { get; set; } + + /// + /// Is Holding Company. + /// + public virtual bool? IsHoldingCompany { get; set; } + + /// + /// Public Interest. + /// + public virtual string PublicInterest { get; set; } + + /// + /// Contact Person. + /// + public virtual string ContactPerson { get; set; } + + /// + /// Professional Network. + /// + public virtual string ProfessionalNetwork { get; set; } + + /// + /// Certified Auditors. + /// + public virtual CertifiedAuditors CertifiedAuditors { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AuditorVotingRights.cs b/DanishCvr/Responses/Models/AuditorVotingRights.cs new file mode 100644 index 0000000..9760c3c --- /dev/null +++ b/DanishCvr/Responses/Models/AuditorVotingRights.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Auditor Voting Rights. +/// +public class AuditorVotingRights : VotingRights +{ + /// + /// Type. + /// + public virtual string Type { get; set; } + + /// + /// Exception. + /// + public virtual string Exception { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Auditors.cs b/DanishCvr/Responses/Models/Auditors.cs new file mode 100644 index 0000000..c485dc9 --- /dev/null +++ b/DanishCvr/Responses/Models/Auditors.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Auditors. +/// +public class Auditors +{ + /// + /// Current. + /// + public virtual Auditor Current { get; set; } + + /// + /// Historic Auditors. + /// + public virtual IEnumerable HistoricAuditors { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Authority.cs b/DanishCvr/Responses/Models/Authority.cs new file mode 100644 index 0000000..ba81ee7 --- /dev/null +++ b/DanishCvr/Responses/Models/Authority.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Authority. +/// +public class Authority +{ + /// + /// Signatory Rule. + /// + public virtual string SignatoryRule { get; set; } + + /// + /// Executives. + /// + public virtual Executives Executives { get; set; } + + /// + /// Authorized Signatories. + /// + public virtual AuthorizedSignatories AuthorizedSignatories { get; set; } + + /// + /// Special Financial Participants. + /// + public virtual SpecialFinancialParticipants SpecialFinancialParticipants { get; set; } + + /// + /// Other Liable Participants. + /// + public virtual LiableParticipants OtherLiableParticipants { get; set; } + + /// + /// Liquidators. + /// + public virtual IEnumerable Liquidators { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AuthorizedSignatories.cs b/DanishCvr/Responses/Models/AuthorizedSignatories.cs new file mode 100644 index 0000000..bf7dde3 --- /dev/null +++ b/DanishCvr/Responses/Models/AuthorizedSignatories.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Authorized Signatories. +/// +public class AuthorizedSignatories +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Authorized Signatories. + /// + public virtual IEnumerable HistoricAuthorizedSignatories { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/AuthorizedSignatory.cs b/DanishCvr/Responses/Models/AuthorizedSignatory.cs new file mode 100644 index 0000000..d76b662 --- /dev/null +++ b/DanishCvr/Responses/Models/AuthorizedSignatory.cs @@ -0,0 +1,6 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Authorized Signatory. +/// +public class AuthorizedSignatory : BaseRelation; \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BaseCompany.cs b/DanishCvr/Responses/Models/BaseCompany.cs new file mode 100644 index 0000000..720d1fe --- /dev/null +++ b/DanishCvr/Responses/Models/BaseCompany.cs @@ -0,0 +1,45 @@ +using System; +using DanishCvr.Responses.Models.Enums; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Company (abstract). +/// +public abstract class BaseCompany +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Entity Type. + /// + public virtual EntityType EntityType { get; set; } + + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } + + /// + /// Founded At. + /// + public virtual DateOnly? FoundedAt { get; set; } + + /// + /// Dissolved At. + /// + public virtual DateOnly? DissolvedAt { get; set; } + + /// + /// Is Protected From Advertisement. + /// + public virtual bool? IsProtectedFromAdvertisement { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BaseDebugResult.cs b/DanishCvr/Responses/Models/BaseDebugResult.cs new file mode 100644 index 0000000..eaa480b --- /dev/null +++ b/DanishCvr/Responses/Models/BaseDebugResult.cs @@ -0,0 +1,16 @@ +using Newtonsoft.Json; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Debug Result (abstract). +/// +public abstract class BaseDebugResult +{ + /// + /// Raw Json. + /// Only populated in DEBUG mode. + /// + [JsonIgnore] + public virtual string RawJson { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BasePerson.cs b/DanishCvr/Responses/Models/BasePerson.cs new file mode 100644 index 0000000..404ef71 --- /dev/null +++ b/DanishCvr/Responses/Models/BasePerson.cs @@ -0,0 +1,30 @@ +using System; +using DanishCvr.Responses.Models.Enums; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Person (abstract). +/// +public abstract class BasePerson +{ + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Entity Type. + /// + public virtual EntityType EntityType { get; set; } + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BaseProductionUnit.cs b/DanishCvr/Responses/Models/BaseProductionUnit.cs new file mode 100644 index 0000000..46178ea --- /dev/null +++ b/DanishCvr/Responses/Models/BaseProductionUnit.cs @@ -0,0 +1,35 @@ +using System; +using DanishCvr.Responses.Models.Enums; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Production Unit (abstract). +/// +public abstract class BaseProductionUnit +{ + /// + /// Production Unit Number. + /// + public virtual string ProductionUnitNumber { get; set; } + + /// + /// Entity Type. + /// + public virtual EntityType EntityType { get; set; } + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } + + /// + /// Founded At. + /// + public virtual DateOnly? FoundedAt { get; set; } + + /// + /// Dissolved At. + /// + public virtual DateOnly? DissolvedAt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BaseRelation.cs b/DanishCvr/Responses/Models/BaseRelation.cs new file mode 100644 index 0000000..0805d9e --- /dev/null +++ b/DanishCvr/Responses/Models/BaseRelation.cs @@ -0,0 +1,39 @@ +using DanishCvr.Responses.Models.Enums; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Relation (abstract). +/// +public abstract class BaseRelation : DateAndPeriod +{ + /// + /// Entity Type. + /// + public virtual EntityType EntityType { get; set; } + + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Name. + /// + public virtual string Name { get; set; } + + /// + /// Email Address. + /// + public virtual string EmailAddress { get; set; } + + /// + /// Phone Number. + /// + public virtual string PhoneNumber { get; set; } + + /// + /// Address. + /// + public virtual Address Address { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BaseRelationRole.cs b/DanishCvr/Responses/Models/BaseRelationRole.cs new file mode 100644 index 0000000..8800bfd --- /dev/null +++ b/DanishCvr/Responses/Models/BaseRelationRole.cs @@ -0,0 +1,14 @@ +using DanishCvr.Responses.Models.Enums; + +namespace DanishCvr.Responses.Models; + +/// +/// Base Relation Role (abstract). +/// +public abstract class BaseRelationRole : DateAndPeriod +{ + /// + /// Entity Type. + /// + public virtual EntityType EntityType { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BeneficialOwner.cs b/DanishCvr/Responses/Models/BeneficialOwner.cs new file mode 100644 index 0000000..cc75ac5 --- /dev/null +++ b/DanishCvr/Responses/Models/BeneficialOwner.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Beneficial Owner. +/// +public class BeneficialOwner : BaseRelation +{ + /// + /// Equity. + /// + public virtual Equity Equity { get; set; } = new(); + + /// + /// Ownership Special. + /// + public virtual OwnershipSpecials OwnershipSpecial { get; set; } = new(); + + /// + /// Voting Rights. + /// + public virtual VotingRights VotingRights { get; set; } = new(); + + /// + /// Collateral Voting Rights. + /// + public virtual VotingRights CollateralVotingRights { get; set; } = new(); + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Beneficiary.cs b/DanishCvr/Responses/Models/Beneficiary.cs new file mode 100644 index 0000000..e75c555 --- /dev/null +++ b/DanishCvr/Responses/Models/Beneficiary.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Beneficiary. +/// +public class Beneficiary +{ + /// + /// Text. + /// + public virtual string Text { get; set; } + + /// + /// Legal Entitlement. + /// + public virtual string LegalEntitlement { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Bilaws.cs b/DanishCvr/Responses/Models/Bilaws.cs new file mode 100644 index 0000000..1becac3 --- /dev/null +++ b/DanishCvr/Responses/Models/Bilaws.cs @@ -0,0 +1,14 @@ +using DanishCvr.Types; + +namespace DanishCvr.Responses.Models; + +/// +/// Bilaws. +/// +public class Bilaws : Period +{ + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BilawsApproval.cs b/DanishCvr/Responses/Models/BilawsApproval.cs new file mode 100644 index 0000000..738f5e5 --- /dev/null +++ b/DanishCvr/Responses/Models/BilawsApproval.cs @@ -0,0 +1,19 @@ +using System; + +namespace DanishCvr.Responses.Models; + +/// +/// Bilaws Approval. +/// +public class BilawsApproval +{ + /// + /// Authority. + /// + public virtual string Authority { get; set; } + + /// + /// Approved At. + /// + public virtual DateOnly? ApprovedAt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Bilawsses.cs b/DanishCvr/Responses/Models/Bilawsses.cs new file mode 100644 index 0000000..0e7fa54 --- /dev/null +++ b/DanishCvr/Responses/Models/Bilawsses.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Bilawsses. +/// +public class Bilawsses +{ + /// + /// Current. + /// + public virtual Bilaws Current { get; set; } + + /// + /// Approval. + /// + public virtual BilawsApproval Approval { get; set; } + + /// + /// Historic Bilaws. + /// + public virtual IEnumerable HistoricBilaws { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BoardMember.cs b/DanishCvr/Responses/Models/BoardMember.cs new file mode 100644 index 0000000..d5d441a --- /dev/null +++ b/DanishCvr/Responses/Models/BoardMember.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Board Member. +/// +public class BoardMember : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } + + /// + /// Alternate For. + /// + public virtual string AlternateFor { get; set; } + + /// + /// Is Directive 8 Approved. + /// + public virtual bool? IsDirective8Approved { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BoardMembers.cs b/DanishCvr/Responses/Models/BoardMembers.cs new file mode 100644 index 0000000..c8fbaa1 --- /dev/null +++ b/DanishCvr/Responses/Models/BoardMembers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Board Members. +/// +public class BoardMembers +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Board Members. + /// + public virtual IEnumerable HistoricBoardMembers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BusinessType.cs b/DanishCvr/Responses/Models/BusinessType.cs new file mode 100644 index 0000000..a46c61b --- /dev/null +++ b/DanishCvr/Responses/Models/BusinessType.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Business Type. +/// +public class BusinessType : DateAndPeriod +{ + /// + /// Code. + /// + public virtual string Code { get; set; } + + /// + /// Abbreviation. + /// + public virtual string Abbreviation { get; set; } + + /// + /// Description. + /// + public virtual string Description { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BusinessTypeResult.cs b/DanishCvr/Responses/Models/BusinessTypeResult.cs new file mode 100644 index 0000000..1db304e --- /dev/null +++ b/DanishCvr/Responses/Models/BusinessTypeResult.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Business Type Result. +/// +public class BusinessTypeResult +{ + /// + /// Code. + /// + public virtual string Code { get; set; } + + /// + /// Abbreviation. + /// + public virtual string Abbreviation { get; set; } + + /// + /// Description. + /// + public virtual string Description { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/BusinessTypes.cs b/DanishCvr/Responses/Models/BusinessTypes.cs new file mode 100644 index 0000000..9fba1e0 --- /dev/null +++ b/DanishCvr/Responses/Models/BusinessTypes.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Business Types. +/// +public class BusinessTypes +{ + /// + /// Current. + /// + public virtual BusinessType Current { get; set; } + + /// + /// Latest. + /// + public virtual BusinessType Latest { get; set; } + + /// + /// Is Governmental. + /// + public virtual bool? IsGovernmental { get; set; } + + /// + /// Is Publicly Listed. + /// + public virtual bool? IsPubliclyListed { get; set; } + + /// + /// Is Social Economic. + /// + public virtual bool? IsSocialEconomic { get; set; } + + /// + /// Is Certified Auditor. + /// + public virtual bool? IsCertifiedAuditor { get; set; } + + /// + /// Historic Types. + /// + public virtual IEnumerable HistoricTypes { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CertifiedAuditor.cs b/DanishCvr/Responses/Models/CertifiedAuditor.cs new file mode 100644 index 0000000..ce0c5ab --- /dev/null +++ b/DanishCvr/Responses/Models/CertifiedAuditor.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Certified Auditor. +/// +public class CertifiedAuditor : BaseRelation +{ + /// + /// Role. + /// + public virtual string Role { get; set; } + + /// + /// Business Address. + /// + public virtual string BusinessAddress { get; set; } + + /// + /// Voting Rights. + /// + public virtual AuditorVotingRights VotingRights { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CertifiedAuditors.cs b/DanishCvr/Responses/Models/CertifiedAuditors.cs new file mode 100644 index 0000000..c2cf298 --- /dev/null +++ b/DanishCvr/Responses/Models/CertifiedAuditors.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Certified Auditors. +/// +public class CertifiedAuditors +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Certified Auditors. + /// + public virtual IEnumerable HistoricCertifiedAuditors { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/City.cs b/DanishCvr/Responses/Models/City.cs new file mode 100644 index 0000000..6b5ff31 --- /dev/null +++ b/DanishCvr/Responses/Models/City.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// City. +/// +public class City +{ + /// + /// Name. + /// + public virtual string Name { get; set; } + + /// + /// Name. + /// + public virtual string Code { get; set; } + + /// + /// Postal Code. + /// + public virtual string PostalCode { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanyAutoCompleteMatch.cs b/DanishCvr/Responses/Models/CompanyAutoCompleteMatch.cs new file mode 100644 index 0000000..ef149ff --- /dev/null +++ b/DanishCvr/Responses/Models/CompanyAutoCompleteMatch.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Company Auto Complete Match. +/// +public class CompanyAutoCompleteMatch +{ + /// + /// Name. + /// + public virtual string Name { get; set; } + + /// + /// Name Type. + /// + public virtual string NameType { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanyAutoCompleteResult.cs b/DanishCvr/Responses/Models/CompanyAutoCompleteResult.cs new file mode 100644 index 0000000..6a83403 --- /dev/null +++ b/DanishCvr/Responses/Models/CompanyAutoCompleteResult.cs @@ -0,0 +1,44 @@ +using System.Text.RegularExpressions; + +namespace DanishCvr.Responses.Models; + +/// +/// Company Auto Complete Result. +/// +public class CompanyAutoCompleteResult +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Latest Name. + /// + public virtual string LatestName { get; set; } + + /// + /// Match. + /// + public virtual CompanyAutoCompleteMatch Match { get; set; } = new(); + + /// + /// Business Type Abbreviation. + /// + public virtual string BusinessTypeAbbreviation { get; set; } + + /// + /// City Name. + /// + public virtual string CityName { get; set; } + + /// + /// City Postal Code. + /// + public virtual string CityPostalCode { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanyDebugResult.cs b/DanishCvr/Responses/Models/CompanyDebugResult.cs new file mode 100644 index 0000000..b874c87 --- /dev/null +++ b/DanishCvr/Responses/Models/CompanyDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Company Debug Result. +/// +public class CompanyDebugResult : BaseDebugResult +{ + /// + /// Company. + /// + public virtual CompanyResult Company { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanyResult.cs b/DanishCvr/Responses/Models/CompanyResult.cs new file mode 100644 index 0000000..e4cd758 --- /dev/null +++ b/DanishCvr/Responses/Models/CompanyResult.cs @@ -0,0 +1,134 @@ +using System; + +namespace DanishCvr.Responses.Models; + +/// +/// Company Result. +/// +public class CompanyResult : BaseCompany +{ + /// + /// Names. + /// + public virtual Names Names { get; set; } + + /// + /// Alternative Names. + /// + public virtual AlternativeNamesses AlternativeNames { get; set; } + + /// + /// Addresses. + /// + public virtual Addresses Addresses { get; set; } + + /// + /// Phone Numbers. + /// + public virtual PhoneNumbers PhoneNumbers { get; set; } + + /// + /// Fax Numbers. + /// + public virtual FaxNumbers FaxNumbers { get; set; } + + /// + /// Email Addresses. + /// + public virtual EmailAddresses EmailAddresses { get; set; } + + /// + /// Websites. + /// + public virtual Websites Websites { get; set; } + + /// + /// Purpose. + /// + public virtual Purposes Purpose { get; set; } + + /// + /// Industry. + /// + public virtual Industries Industry { get; set; } + + /// + /// Type. + /// + public virtual BusinessTypes Type { get; set; } + + /// + /// Status. + /// + public virtual Statuses Status { get; set; } + + /// + /// Employment. + /// + public virtual Employment Employment { get; set; } + + /// + /// Registered Capital. + /// + public virtual RegisteredCapitals RegisteredCapital { get; set; } + + /// + /// Financial Years. + /// + public virtual FinancialYears FinancialYear { get; set; } + + /// + /// Anti Money Laundering. + /// + public virtual AntiMoneyLaundering AntiMoneyLaundering { get; set; } + + /// + /// Auditing. + /// + public virtual Auditing Auditing { get; set; } + + /// + /// Authority. + /// + public virtual Authority Authority { get; set; } + + /// + /// Governance. + /// + public virtual Governance Governance { get; set; } + + /// + /// Ownership. + /// + public virtual Ownership Ownership { get; set; } + + /// + /// Bilaws. + /// + public virtual Bilawsses Bilaws { get; set; } + + /// + /// Auditor Registration. + /// + public virtual AuditorRegistration AuditorRegistration { get; set; } + + /// + /// Production Units. + /// + public virtual ProductionUnits ProductionUnits { get; set; } + + /// + /// Effective Started At. + /// + public virtual DateOnly? EffectiveStartedAt { get; set; } + + /// + /// Commercial Fund Approved At. + /// + public virtual DateOnly? CommercialFundApprovedAt { get; set; } + + /// + /// Errors. + /// + public virtual Errors Errors { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanySearchDebugResult.cs b/DanishCvr/Responses/Models/CompanySearchDebugResult.cs new file mode 100644 index 0000000..cf94f59 --- /dev/null +++ b/DanishCvr/Responses/Models/CompanySearchDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Company Search Debug Result. +/// +public class CompanySearchDebugResult : BaseDebugResult +{ + /// + /// Company. + /// + public virtual CompanySearchResult Company { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CompanySearchResult.cs b/DanishCvr/Responses/Models/CompanySearchResult.cs new file mode 100644 index 0000000..d1e4171 --- /dev/null +++ b/DanishCvr/Responses/Models/CompanySearchResult.cs @@ -0,0 +1,87 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Company Search Result. +/// +public class CompanySearchResult : BaseCompany +{ + /// + /// Name. + /// + public virtual Name Name { get; set; } + + /// + /// Address. + /// + public virtual Address Address { get; set; } + + /// + /// Phone Number. + /// + public virtual PhoneNumber PhoneNumber { get; set; } + + /// + /// Fax Number. + /// + public virtual FaxNumber FaxNumber { get; set; } + + /// + /// Email Address. + /// + public virtual EmailAddress EmailAddress { get; set; } + + /// + /// Website. + /// + public virtual Website Website { get; set; } + + /// + /// Purpose. + /// + public virtual Purpose Purpose { get; set; } + + /// + /// Industry. + /// + public virtual Industry Industry { get; set; } + + /// + /// Type. + /// + public virtual BusinessType Type { get; set; } + + /// + /// Status. + /// + public virtual Status Status { get; set; } + + /// + /// Employees. + /// + public virtual Employees Employees { get; set; } + + /// + /// Is Governmental. + /// + public virtual bool? IsGovernmental { get; set; } + + /// + /// Is Publicly Listed. + /// + public virtual bool? IsPubliclyListed { get; set; } + + /// + /// Is Social Economic. + /// + public virtual bool? IsSocialEconomic { get; set; } + + /// + /// Is Certified Auditor. + /// + public virtual bool? IsCertifiedAuditor { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CreditStatus.cs b/DanishCvr/Responses/Models/CreditStatus.cs new file mode 100644 index 0000000..e1d5da9 --- /dev/null +++ b/DanishCvr/Responses/Models/CreditStatus.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Credit Status. +/// +public class CreditStatus : DateAndPeriod +{ + /// + /// Code. + /// + public virtual string Code { get; set; } + + /// + /// Text. + /// + public virtual string Text { get; set; } + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/CreditStatuses.cs b/DanishCvr/Responses/Models/CreditStatuses.cs new file mode 100644 index 0000000..f4f9909 --- /dev/null +++ b/DanishCvr/Responses/Models/CreditStatuses.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Credit Statuses. +/// +public class CreditStatuses +{ + /// + /// Current. + /// + public virtual CreditStatus Current { get; set; } + + /// + /// Historic Statuses. + /// + public virtual IEnumerable HistoricStatuses { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/DateAndPeriod.cs b/DanishCvr/Responses/Models/DateAndPeriod.cs new file mode 100644 index 0000000..8505074 --- /dev/null +++ b/DanishCvr/Responses/Models/DateAndPeriod.cs @@ -0,0 +1,20 @@ +using System; +using DanishCvr.Types; + +namespace DanishCvr.Responses.Models; + +/// +/// Date And Period. +/// +public class DateAndPeriod +{ + /// + /// Period. + /// + public virtual Period Period { get; set; } = new(); + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/EmailAddress.cs b/DanishCvr/Responses/Models/EmailAddress.cs new file mode 100644 index 0000000..14e1a4f --- /dev/null +++ b/DanishCvr/Responses/Models/EmailAddress.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Email Address. +/// +public class EmailAddress : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } + + /// + /// Is Unlisted. + /// + public virtual bool IsUnlisted { get; set; } = false; +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/EmailAddresses.cs b/DanishCvr/Responses/Models/EmailAddresses.cs new file mode 100644 index 0000000..8b82cea --- /dev/null +++ b/DanishCvr/Responses/Models/EmailAddresses.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Email Addresses. +/// +public class EmailAddresses +{ + /// + /// Current. + /// + public virtual EmailAddress Current { get; set; } + + /// + /// Historic Email Addresses. + /// + public virtual IEnumerable HistoricEmailAddresses { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Employees.cs b/DanishCvr/Responses/Models/Employees.cs new file mode 100644 index 0000000..a303350 --- /dev/null +++ b/DanishCvr/Responses/Models/Employees.cs @@ -0,0 +1,30 @@ +using System; +using DanishCvr.Types; + +namespace DanishCvr.Responses.Models; + +/// +/// Employees. +/// +public class Employees +{ + /// + /// Year. + /// + public virtual Period Period { get; set; } = new(); + + /// + /// Number Of Employees. + /// + public virtual int? NumberOfEmployees { get; set; } + + /// + /// Number Of Fulltime Positions. + /// + public virtual double? NumberOfFulltimePositions { get; set; } + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Employeeses.cs b/DanishCvr/Responses/Models/Employeeses.cs new file mode 100644 index 0000000..02b1ab8 --- /dev/null +++ b/DanishCvr/Responses/Models/Employeeses.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Employeeses. +/// +public class Employeeses +{ + /// + /// Current. + /// + public virtual Employees Current { get; set; } + + /// + /// Latest. + /// + public virtual Employees Latest { get; set; } + + /// + /// Historic Employment. + /// + public virtual IEnumerable HistoricEmployees { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Employment.cs b/DanishCvr/Responses/Models/Employment.cs new file mode 100644 index 0000000..2d2c0af --- /dev/null +++ b/DanishCvr/Responses/Models/Employment.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Employment. +/// +public class Employment +{ + /// + /// Employees. + /// + public virtual Employeeses Employees { get; set; } + + /// + /// Managers. + /// + public virtual Managers Managers { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Enums/EntityType.cs b/DanishCvr/Responses/Models/Enums/EntityType.cs new file mode 100644 index 0000000..1028bce --- /dev/null +++ b/DanishCvr/Responses/Models/Enums/EntityType.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Responses.Models.Enums; + +/// +/// Entity Type. +/// +public enum EntityType +{ + /// + /// Unknown. + /// + Unknown = 0, + + /// + /// Person. + /// + Person = 1, + + /// + /// Company. + /// + Company = 2, + + /// + /// Production Unit. + /// + ProductionUnit = 3, + + /// + /// Other. + /// + Other = 4 +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Enums/RelationType.cs b/DanishCvr/Responses/Models/Enums/RelationType.cs new file mode 100644 index 0000000..63325d8 --- /dev/null +++ b/DanishCvr/Responses/Models/Enums/RelationType.cs @@ -0,0 +1,82 @@ +namespace DanishCvr.Responses.Models.Enums; + +/// +/// Relation Type. +/// +public enum RelationType +{ + /// + /// Unknown. + /// + Unknown = 0, + + /// + /// Founder. + /// + Founder = 1, + + /// + /// Legal Owner. + /// + LegalOwner = 2, + + /// + /// Beneficial Owner. + /// + BeneficialOwner = 3, + + /// + /// Liquidator. + /// + Liquidator = 4, + + /// + /// Auditor. + /// + Auditor = 5, + + /// + /// Executive. + /// + Executive = 6, + + /// + /// Board Member. + /// + BoardMember = 7, + + /// + /// Manager. + /// + Manager = 8, + + /// + /// Authorized Signatory. + /// + AuthorizedSignatory = 9, + + /// + /// Anti Money Laundering Appointee. + /// + AntiMoneyLaunderingAppointee = 10, + + /// + /// Special Financial Participant. + /// + SpecialFinancialParticipant = 11, + + /// + /// Liable Participant. + /// + LiableParticipant = 12, + + /// + /// Association Representative. + /// + AssociationRepresentative = 13, + + /// + /// Certified Auditor. + /// + CertifiedAuditor = 14 +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Equity.cs b/DanishCvr/Responses/Models/Equity.cs new file mode 100644 index 0000000..4b52968 --- /dev/null +++ b/DanishCvr/Responses/Models/Equity.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Ownership. +/// +public class Equity +{ + /// + /// Current. + /// + public virtual Share Current { get; set; } + + /// + /// Historic Values. + /// + public virtual IEnumerable HistoricValues { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Errors.cs b/DanishCvr/Responses/Models/Errors.cs new file mode 100644 index 0000000..59e9d69 --- /dev/null +++ b/DanishCvr/Responses/Models/Errors.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Errors. +/// +public class Errors +{ + /// + /// Has Import Error. + /// + public virtual bool HasImportErrors { get; set; } + + /// + /// Has Registration Error. + /// + public virtual bool HasRegistrationErrors { get; set; } + + /// + /// Description. + /// + public virtual string Description { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Executive.cs b/DanishCvr/Responses/Models/Executive.cs new file mode 100644 index 0000000..6e045c1 --- /dev/null +++ b/DanishCvr/Responses/Models/Executive.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Executive. +/// +public class Executive : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Executives.cs b/DanishCvr/Responses/Models/Executives.cs new file mode 100644 index 0000000..3c69245 --- /dev/null +++ b/DanishCvr/Responses/Models/Executives.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Executives. +/// +public class Executives +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Executives. + /// + public virtual IEnumerable HistoricExecutives { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/FaxNumber.cs b/DanishCvr/Responses/Models/FaxNumber.cs new file mode 100644 index 0000000..8eed51a --- /dev/null +++ b/DanishCvr/Responses/Models/FaxNumber.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Fax Number +/// +public class FaxNumber : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } + + /// + /// Is Unlisted. + /// + public virtual bool IsUnlisted { get; set; } = false; +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/FaxNumbers.cs b/DanishCvr/Responses/Models/FaxNumbers.cs new file mode 100644 index 0000000..e04e9a2 --- /dev/null +++ b/DanishCvr/Responses/Models/FaxNumbers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Fax Numbers +/// +public class FaxNumbers +{ + /// + /// Current. + /// + public virtual FaxNumber Current { get; set; } + + /// + /// Historic Fax Numbers. + /// + public virtual IEnumerable HistoricFaxNumbers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/FinancialPurpose.cs b/DanishCvr/Responses/Models/FinancialPurpose.cs new file mode 100644 index 0000000..7c02fab --- /dev/null +++ b/DanishCvr/Responses/Models/FinancialPurpose.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Financial Purpose. +/// +public class FinancialPurpose +{ + /// + /// Current. + /// + public virtual Purpose Current { get; set; } + + /// + /// Latest. + /// + public virtual Purpose Latest { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/FinancialYear.cs b/DanishCvr/Responses/Models/FinancialYear.cs new file mode 100644 index 0000000..5c1c165 --- /dev/null +++ b/DanishCvr/Responses/Models/FinancialYear.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Financial Year. +/// +public class FinancialYear : DateAndPeriod +{ + /// + /// Begin. + /// + public virtual MonthAndDay Begin { get; set; } + + /// + /// End. + /// + public virtual MonthAndDay End { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/FinancialYears.cs b/DanishCvr/Responses/Models/FinancialYears.cs new file mode 100644 index 0000000..983fe82 --- /dev/null +++ b/DanishCvr/Responses/Models/FinancialYears.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using DanishCvr.Types; + +namespace DanishCvr.Responses.Models; + +/// +/// Financial Years. +/// +public class FinancialYears +{ + /// + /// Current. + /// + public virtual FinancialYear Current { get; set; } + + /// + /// Latest. + /// + public virtual FinancialYear Latest { get; set; } + + /// + /// First Financial Year. + /// + public virtual Period FirstFinancialYear { get; set; } + + /// + /// Ongoing Transition Period. + /// + public virtual Period OngoingTransitionPeriod { get; set; } + + /// + /// Notes. + /// + public virtual string Notes { get; set; } + + /// + /// HistoricFinancialYears. + /// + public virtual IEnumerable HistoricFinancialYears { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Founder.cs b/DanishCvr/Responses/Models/Founder.cs new file mode 100644 index 0000000..41ba84b --- /dev/null +++ b/DanishCvr/Responses/Models/Founder.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Founder. +/// +public class Founder : BaseRelation +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Governance.cs b/DanishCvr/Responses/Models/Governance.cs new file mode 100644 index 0000000..bf2ece9 --- /dev/null +++ b/DanishCvr/Responses/Models/Governance.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Governance. +/// +public class Governance +{ + /// + /// Oversight. + /// + public virtual Oversight Oversight { get; set; } + + /// + /// Board Members. + /// + public virtual BoardMembers BoardMembers { get; set; } + + /// + /// Association Representatives. + /// + public virtual AssociationRepresentatives AssociationRepresentatives { get; set; } + + /// + /// Founders. + /// + public virtual IEnumerable Founders { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Industries.cs b/DanishCvr/Responses/Models/Industries.cs new file mode 100644 index 0000000..31e607b --- /dev/null +++ b/DanishCvr/Responses/Models/Industries.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Industries +/// +public class Industries +{ + /// + /// Current. + /// + public virtual Industry Current { get; set; } + + /// + /// Latest. + /// + public virtual Industry Latest { get; set; } + + /// + /// Notes. + /// + public virtual string Notes { get; set; } + + /// + /// Historic Primaries. + /// + public virtual IEnumerable HistoricIndustries { get; set; } = new List(); + + /// + /// Secondary Industries. + /// + public virtual IEnumerable SecondaryIndustries { get; set; } = new List(); + + /// + /// Historic Secondary Industries. + /// + public virtual IEnumerable HistoricSecondaryIndustries { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Industry.cs b/DanishCvr/Responses/Models/Industry.cs new file mode 100644 index 0000000..cc03ac1 --- /dev/null +++ b/DanishCvr/Responses/Models/Industry.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Industry. +/// +public class Industry : DateAndPeriod +{ + /// + /// Code. + /// + public virtual string Code { get; set; } + + /// + /// Description. + /// + public virtual string Description { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/IndustryResult.cs b/DanishCvr/Responses/Models/IndustryResult.cs new file mode 100644 index 0000000..37de7c9 --- /dev/null +++ b/DanishCvr/Responses/Models/IndustryResult.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Industry Result. +/// +public class IndustryResult +{ + /// + /// Code. + /// + public virtual string Code { get; set; } + + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Description. + /// + public virtual string Description { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/LegalOwner.cs b/DanishCvr/Responses/Models/LegalOwner.cs new file mode 100644 index 0000000..e1be99e --- /dev/null +++ b/DanishCvr/Responses/Models/LegalOwner.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Legal Owner. +/// +public class LegalOwner : BaseRelation +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Equity. + /// + public virtual Equity Equity { get; set; } = new(); + + /// + /// Voting Rights. + /// + public virtual VotingRights VotingRights { get; set; } = new(); + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/LiableParticipant.cs b/DanishCvr/Responses/Models/LiableParticipant.cs new file mode 100644 index 0000000..e873222 --- /dev/null +++ b/DanishCvr/Responses/Models/LiableParticipant.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Liable Participant. +/// +public class LiableParticipant : BaseRelation +{ + /// + /// Role. + /// + public virtual string Role { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } + + /// + /// Registered Capital. + /// + public virtual RegisteredCapital RegisteredCapital { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/LiableParticipants.cs b/DanishCvr/Responses/Models/LiableParticipants.cs new file mode 100644 index 0000000..d39a2c3 --- /dev/null +++ b/DanishCvr/Responses/Models/LiableParticipants.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Liable Participants. +/// +public class LiableParticipants +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Liable Participants. + /// + public virtual IEnumerable HistoricLiableParticipants { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Liquidator.cs b/DanishCvr/Responses/Models/Liquidator.cs new file mode 100644 index 0000000..19c9503 --- /dev/null +++ b/DanishCvr/Responses/Models/Liquidator.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Liquidator. +/// +public class Liquidator : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Appointed By. + /// + public virtual string AppointedBy { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Manager.cs b/DanishCvr/Responses/Models/Manager.cs new file mode 100644 index 0000000..c660226 --- /dev/null +++ b/DanishCvr/Responses/Models/Manager.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Manager. +/// +public class Manager : BaseRelation +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Managers.cs b/DanishCvr/Responses/Models/Managers.cs new file mode 100644 index 0000000..0923698 --- /dev/null +++ b/DanishCvr/Responses/Models/Managers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Managers. +/// +public class Managers +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } + + /// + /// Historic Managers. + /// + public virtual IEnumerable HistoricManagers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/MergersAndSplits.cs b/DanishCvr/Responses/Models/MergersAndSplits.cs new file mode 100644 index 0000000..4474020 --- /dev/null +++ b/DanishCvr/Responses/Models/MergersAndSplits.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Mergers And Splits. +/// +public class MergersAndSplits : DateAndPeriod +{ + /// + /// Externa lId. + /// + public virtual string ExternalId { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/MonthAndDay.cs b/DanishCvr/Responses/Models/MonthAndDay.cs new file mode 100644 index 0000000..da8edc6 --- /dev/null +++ b/DanishCvr/Responses/Models/MonthAndDay.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Year And Month. +/// +public class MonthAndDay +{ + /// + /// Month. + /// + public virtual int Month { get; set; } + + /// + /// Day. + /// + public virtual int Day { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Name.cs b/DanishCvr/Responses/Models/Name.cs new file mode 100644 index 0000000..d7128aa --- /dev/null +++ b/DanishCvr/Responses/Models/Name.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Name. +/// +public class Name : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Names.cs b/DanishCvr/Responses/Models/Names.cs new file mode 100644 index 0000000..87bf0cd --- /dev/null +++ b/DanishCvr/Responses/Models/Names.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Names. +/// +public class Names +{ + /// + /// Current. + /// + public virtual Name Current { get; set; } + + /// + /// Latest. + /// + public virtual Name Latest { get; set; } + + /// + /// Historic Names. + /// + public virtual IEnumerable HistoricNames { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Oversight.cs b/DanishCvr/Responses/Models/Oversight.cs new file mode 100644 index 0000000..ca79390 --- /dev/null +++ b/DanishCvr/Responses/Models/Oversight.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Oversights. +/// +public class Oversight +{ + /// + /// Authority. + /// + public virtual string Authority { get; set; } + + /// + /// Has Social Economic Oversight. + /// + public virtual bool? HasSocialEconomicOversight { get; set; } + + /// + /// Has Special Licenses Or Concessions. + /// + public virtual bool? HasSpecialLicensesOrConcessions { get; set; } + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Ownership.cs b/DanishCvr/Responses/Models/Ownership.cs new file mode 100644 index 0000000..0e06415 --- /dev/null +++ b/DanishCvr/Responses/Models/Ownership.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Ownership. +/// +public class Ownership +{ + /// + /// Has Share Classes. + /// + public virtual bool HasShareClasses { get; set; } = false; + + /// + /// Has Only Under 5 Percent Ownerships. + /// + public virtual bool HasOnlyUnder5PercentOwnerships { get; set; } = false; + + /// + /// Has Public Shareholder Registry. + /// + public virtual bool HasPublicShareholderRegistry { get; set; } = false; + + /// + /// Beneficiary. + /// + public virtual Beneficiary Beneficiary { get; set; } + + /// + /// Parent Company. + /// + public virtual ParentCompanies ParentCompany { get; set; } + + /// + /// Legal Owners. + /// + public virtual IEnumerable LegalOwners { get; set; } = new List(); + + /// + /// Beneficial Owners. + /// + public virtual IEnumerable BeneficialOwners { get; set; } = new List(); + + /// + /// Mergers. + /// + public virtual IEnumerable Mergers { get; set; } = new List(); + + /// + /// Demergers. + /// + public virtual IEnumerable DeMergers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/OwnershipSpecial.cs b/DanishCvr/Responses/Models/OwnershipSpecial.cs new file mode 100644 index 0000000..7f079ec --- /dev/null +++ b/DanishCvr/Responses/Models/OwnershipSpecial.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Ownership Special. +/// +public class OwnershipSpecial : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/OwnershipSpecials.cs b/DanishCvr/Responses/Models/OwnershipSpecials.cs new file mode 100644 index 0000000..2e8b231 --- /dev/null +++ b/DanishCvr/Responses/Models/OwnershipSpecials.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Ownership Specials. +/// +public class OwnershipSpecials +{ + /// + /// Current. + /// + public virtual OwnershipSpecial Current { get; set; } + + /// + /// Historic Values. + /// + public virtual IEnumerable HistoricValues { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ParentCompanies.cs b/DanishCvr/Responses/Models/ParentCompanies.cs new file mode 100644 index 0000000..67e58ed --- /dev/null +++ b/DanishCvr/Responses/Models/ParentCompanies.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Parent Companies. +/// +public class ParentCompanies +{ + /// + /// Current. + /// + public virtual ParentCompany Current { get; set; } + + /// + /// Historic Parent Companies. + /// + public virtual IEnumerable HistoricParentCompanies { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ParentCompany.cs b/DanishCvr/Responses/Models/ParentCompany.cs new file mode 100644 index 0000000..afdfe6b --- /dev/null +++ b/DanishCvr/Responses/Models/ParentCompany.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Parent Company. +/// +public class ParentCompany : DateAndPeriod +{ + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonAutoCompleteResult.cs b/DanishCvr/Responses/Models/PersonAutoCompleteResult.cs new file mode 100644 index 0000000..e37f7d4 --- /dev/null +++ b/DanishCvr/Responses/Models/PersonAutoCompleteResult.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Person Auto Complete Result. +/// +public class PersonAutoCompleteResult +{ + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Name. + /// + public virtual string Name { get; set; } + + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// City. + /// + public virtual string City { get; set; } + + /// + /// Postal Code. + /// + public virtual string PostalCode { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonCompany.cs b/DanishCvr/Responses/Models/PersonCompany.cs new file mode 100644 index 0000000..878c2c7 --- /dev/null +++ b/DanishCvr/Responses/Models/PersonCompany.cs @@ -0,0 +1,35 @@ +using DanishCvr.Responses.Models.Enums; +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Person Company. +/// +public class PersonCompany +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Name. + /// + public virtual Name Name { get; set; } + + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } + + /// + /// Active Roles. + /// + public virtual IEnumerable ActiveRoles { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonDebugResult.cs b/DanishCvr/Responses/Models/PersonDebugResult.cs new file mode 100644 index 0000000..294e484 --- /dev/null +++ b/DanishCvr/Responses/Models/PersonDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Person Debug Result. +/// +public class PersonDebugResult : BaseDebugResult +{ + /// + /// Person. + /// + public virtual PersonResult Person { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonName.cs b/DanishCvr/Responses/Models/PersonName.cs new file mode 100644 index 0000000..d5fac9e --- /dev/null +++ b/DanishCvr/Responses/Models/PersonName.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Person Name. +/// +public class PersonName +{ + /// + /// Value. + /// + public virtual string Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonResult.cs b/DanishCvr/Responses/Models/PersonResult.cs new file mode 100644 index 0000000..85ea7d3 --- /dev/null +++ b/DanishCvr/Responses/Models/PersonResult.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Person Result. +/// +public class PersonResult : BasePerson +{ + /// + /// Name. + /// + public virtual PersonName Name { get; set; } + + /// + /// Addresses. + /// + public virtual Addresses Addresses { get; set; } + + /// + /// Phone Numbers. + /// + public virtual PhoneNumbers PhoneNumbers { get; set; } + + /// + /// Fax Numbers. + /// + public virtual FaxNumbers FaxNumbers { get; set; } + + /// + /// Email Addresses. + /// + public virtual EmailAddresses EmailAddresses { get; set; } + + /// + /// Errors. + /// + public virtual Errors Errors { get; set; } + + /// + /// Companies. + /// + public virtual IEnumerable Companies { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonSearchDebugResult.cs b/DanishCvr/Responses/Models/PersonSearchDebugResult.cs new file mode 100644 index 0000000..38bcc3c --- /dev/null +++ b/DanishCvr/Responses/Models/PersonSearchDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Person Search Result. +/// +public class PersonSearchDebugResult : BaseDebugResult +{ + /// + /// Person. + /// + public virtual PersonSearchResult Person { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PersonSearchResult.cs b/DanishCvr/Responses/Models/PersonSearchResult.cs new file mode 100644 index 0000000..d338c3c --- /dev/null +++ b/DanishCvr/Responses/Models/PersonSearchResult.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Person Search Result. +/// +public class PersonSearchResult : BasePerson +{ + /// + /// Name. + /// + public virtual PersonName Name { get; set; } + + /// + /// Address. + /// + public virtual Address Address { get; set; } + + /// + /// Phone Number. + /// + public virtual PhoneNumber PhoneNumber { get; set; } + + /// + /// Fax Number. + /// + public virtual FaxNumber FaxNumber { get; set; } + + /// + /// Email Address. + /// + public virtual EmailAddress EmailAddress { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PhoneNumber.cs b/DanishCvr/Responses/Models/PhoneNumber.cs new file mode 100644 index 0000000..d2c56dd --- /dev/null +++ b/DanishCvr/Responses/Models/PhoneNumber.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Phone Number. +/// +public class PhoneNumber : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } + + /// + /// Is Unlisted. + /// + public virtual bool IsUnlisted { get; set; } = false; +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/PhoneNumbers.cs b/DanishCvr/Responses/Models/PhoneNumbers.cs new file mode 100644 index 0000000..463e916 --- /dev/null +++ b/DanishCvr/Responses/Models/PhoneNumbers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Phone Numbers. +/// +public class PhoneNumbers +{ + /// + /// Current. + /// + public virtual PhoneNumber Current { get; set; } + + /// + /// Historic Phone Numbers. + /// + public virtual IEnumerable HistoricPhoneNumbers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitCompanies.cs b/DanishCvr/Responses/Models/ProductionUnitCompanies.cs new file mode 100644 index 0000000..0e85359 --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitCompanies.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Companies. +/// +public class ProductionUnitCompanies +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Companies. + /// + public virtual IEnumerable HistoricCompanies { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitCompany.cs b/DanishCvr/Responses/Models/ProductionUnitCompany.cs new file mode 100644 index 0000000..0894f8c --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitCompany.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Company. +/// +public class ProductionUnitCompany : DateAndPeriod +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitDebugResult.cs b/DanishCvr/Responses/Models/ProductionUnitDebugResult.cs new file mode 100644 index 0000000..691beb0 --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Result. +/// +public class ProductionUnitDebugResult : BaseDebugResult +{ + /// + /// Production Unit. + /// + public virtual ProductionUnitResult ProductionUnit { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitId.cs b/DanishCvr/Responses/Models/ProductionUnitId.cs new file mode 100644 index 0000000..d93ff16 --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitId.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Id. +/// +public class ProductionUnitId : DateAndPeriod +{ + /// + /// Production Unit Number. + /// + public virtual string ProductionUnitNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitResult.cs b/DanishCvr/Responses/Models/ProductionUnitResult.cs new file mode 100644 index 0000000..40b503d --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitResult.cs @@ -0,0 +1,82 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit. +/// +public class ProductionUnitResult : BaseProductionUnit +{ + /// + /// Names. + /// + public virtual Names Names { get; set; } + + /// + /// Addresses. + /// + public virtual Addresses Addresses { get; set; } + + /// + /// Phone Numbers. + /// + public virtual PhoneNumbers PhoneNumbers { get; set; } + + /// + /// Fax Numbers. + /// + public virtual FaxNumbers FaxNumbers { get; set; } + + /// + /// Email Addresses. + /// + public virtual EmailAddresses EmailAddresses { get; set; } + + /// + /// Industry. + /// + public virtual Industries Industry { get; set; } + + /// + /// Employees. + /// + public virtual Employeeses Employees { get; set; } + + /// + /// Companies. + /// + public virtual ProductionUnitCompanies Companies { get; set; } + + /// + /// Status. + /// + public virtual StatusesSimple Status { get; set; } + + /// + /// Is Headuarters. + /// + public virtual bool? IsHeaduarters { get; set; } + + /// + /// Is Supporting Unit. + /// + public virtual bool? IsSupportingUnit { get; set; } + + /// + /// Is Temporary. + /// + public virtual bool? IsTemporary { get; set; } + + /// + /// Has Confidentiality. + /// + public virtual bool? HasConfidentiality { get; set; } + + /// + /// Is Protected From Advertisement. + /// + public virtual bool? IsProtectedFromAdvertisement { get; set; } + + /// + /// Errors. + /// + public virtual Errors Errors { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitSearchDebugResult.cs b/DanishCvr/Responses/Models/ProductionUnitSearchDebugResult.cs new file mode 100644 index 0000000..c6cd02b --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitSearchDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Search Result. +/// +public class ProductionUnitSearchDebugResult : BaseDebugResult +{ + /// + /// Production Unit. + /// + public virtual ProductionUnitSearchResult ProductionUnit { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnitSearchResult.cs b/DanishCvr/Responses/Models/ProductionUnitSearchResult.cs new file mode 100644 index 0000000..bb65ac3 --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnitSearchResult.cs @@ -0,0 +1,52 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Production Unit Search. +/// +public class ProductionUnitSearchResult : BaseProductionUnit +{ + /// + /// Name. + /// + public virtual Name Name { get; set; } + + /// + /// Address. + /// + public virtual Address Address { get; set; } + + /// + /// Phone Number. + /// + public virtual PhoneNumber PhoneNumber { get; set; } + + /// + /// Fax Number. + /// + public virtual FaxNumber FaxNumber { get; set; } + + /// + /// Email Address. + /// + public virtual EmailAddress EmailAddress { get; set; } + + /// + /// Industry. + /// + public virtual Industry Industry { get; set; } + + /// + /// Employees. + /// + public virtual Employees Employees { get; set; } + + /// + /// Status. + /// + public virtual StatusesSimple Status { get; set; } + + /// + /// Is Protected From Advertisement. + /// + public virtual bool? IsProtectedFromAdvertisement { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ProductionUnits.cs b/DanishCvr/Responses/Models/ProductionUnits.cs new file mode 100644 index 0000000..c6518df --- /dev/null +++ b/DanishCvr/Responses/Models/ProductionUnits.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Websites. +/// +public class ProductionUnits +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Production Units. + /// + public virtual IEnumerable HistoricProductionUnits { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Purpose.cs b/DanishCvr/Responses/Models/Purpose.cs new file mode 100644 index 0000000..5778e39 --- /dev/null +++ b/DanishCvr/Responses/Models/Purpose.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Purpose. +/// +public class Purpose : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Purposes.cs b/DanishCvr/Responses/Models/Purposes.cs new file mode 100644 index 0000000..effbb33 --- /dev/null +++ b/DanishCvr/Responses/Models/Purposes.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Purposes. +/// +public class Purposes +{ + /// + /// Current. + /// + public virtual Purpose Current { get; set; } + + /// + /// Latest. + /// + public virtual Purpose Latest { get; set; } + + /// + /// Financial Purpose. + /// + public virtual FinancialPurpose FinancialPurpose { get; set; } + + /// + /// Historic Purposes. + /// + public virtual IEnumerable HistoricPurposes { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RegisteredCapital.cs b/DanishCvr/Responses/Models/RegisteredCapital.cs new file mode 100644 index 0000000..ca0115f --- /dev/null +++ b/DanishCvr/Responses/Models/RegisteredCapital.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Registered Capital. +/// +public class RegisteredCapital : DateAndPeriod +{ + /// + /// Value. + /// + public virtual double? Value { get; set; } + + /// + /// Currency. + /// + public virtual string Currency { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RegisteredCapitals.cs b/DanishCvr/Responses/Models/RegisteredCapitals.cs new file mode 100644 index 0000000..1e6f72d --- /dev/null +++ b/DanishCvr/Responses/Models/RegisteredCapitals.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Registered Capitals. +/// +public class RegisteredCapitals +{ + /// + /// Current. + /// + public virtual RegisteredCapital Current { get; set; } + + /// + /// Is Partially Paid. + /// + public virtual bool? IsPartiallyPaid { get; set; } + + /// + /// Historic Registered Capital. + /// + public virtual IEnumerable HistoricRegisteredCapitals { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RegistrationTextDebugResult.cs b/DanishCvr/Responses/Models/RegistrationTextDebugResult.cs new file mode 100644 index 0000000..598e0c8 --- /dev/null +++ b/DanishCvr/Responses/Models/RegistrationTextDebugResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Registration Text Result. +/// +public class RegistrationTextDebugResult : BaseDebugResult +{ + /// + /// Registration Text. + /// + public virtual RegistrationTextResult RegistrationText { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RegistrationTextResult.cs b/DanishCvr/Responses/Models/RegistrationTextResult.cs new file mode 100644 index 0000000..9bd28d4 --- /dev/null +++ b/DanishCvr/Responses/Models/RegistrationTextResult.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Registration Text. +/// +public class RegistrationTextResult +{ + /// + /// External Id. + /// + public virtual string ExternalId { get; set; } + + /// + /// Registered At. + /// + public virtual DateTimeOffset? RegisteredAt { get; set; } + + /// + /// Published At. + /// + public virtual DateTimeOffset? PublishedAt { get; set; } + + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Name. + /// + public virtual string Name { get; set; } + + /// + /// Address. + /// + public virtual string Address { get; set; } + + /// + /// Postal Code. + /// + public virtual string PostalCode { get; set; } + + /// + /// Text. + /// + public virtual string Text { get; set; } + + /// + /// Updated At. + /// + public virtual DateTimeOffset? UpdatedAt { get; set; } + + /// + /// Statuses. + /// + public virtual IEnumerable Statuses { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointee.cs b/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointee.cs new file mode 100644 index 0000000..29b190e --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointee.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Anti Money Laundering Appointee. +/// +public class RelationAntiMoneyLaunderingAppointee : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointees.cs b/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointees.cs new file mode 100644 index 0000000..b135891 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAntiMoneyLaunderingAppointees.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Anti Money Laundering Appointees. +/// +public class RelationAntiMoneyLaunderingAppointees +{ + /// + /// Current. + /// + public virtual RelationAntiMoneyLaunderingAppointee Current { get; set; } + + /// + /// Historic Anti Money Laundering Appointees. + /// + public virtual IEnumerable HistoricAntiMoneyLaunderingAppointees { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAssociationRepresentative.cs b/DanishCvr/Responses/Models/RelationAssociationRepresentative.cs new file mode 100644 index 0000000..2844eaf --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAssociationRepresentative.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Association Representative. +/// +public class RelationAssociationRepresentative : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAssociationRepresentatives.cs b/DanishCvr/Responses/Models/RelationAssociationRepresentatives.cs new file mode 100644 index 0000000..cac76c1 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAssociationRepresentatives.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Association Representatives. +/// +public class RelationAssociationRepresentatives +{ + /// + /// Current. + /// + public virtual RelationAssociationRepresentative Current { get; set; } + + /// + /// Historic Association Representatives. + /// + public virtual IEnumerable HistoricAssociationRepresentatives { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAuditor.cs b/DanishCvr/Responses/Models/RelationAuditor.cs new file mode 100644 index 0000000..d033f21 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAuditor.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Auditor. +/// +public class RelationAuditor : BaseRelationRole +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAuditors.cs b/DanishCvr/Responses/Models/RelationAuditors.cs new file mode 100644 index 0000000..18949da --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAuditors.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Auditors. +/// +public class RelationAuditors +{ + /// + /// Current. + /// + public virtual RelationAuditor Current { get; set; } + + /// + /// Historic Auditors. + /// + public virtual IEnumerable HistoricAuditors { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAuthorizedSignatories.cs b/DanishCvr/Responses/Models/RelationAuthorizedSignatories.cs new file mode 100644 index 0000000..4df7790 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAuthorizedSignatories.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Authorized Signatories. +/// +public class RelationAuthorizedSignatories +{ + /// + /// Current. + /// + public virtual RelationAuthorizedSignatory Current { get; set; } + + /// + /// Historic Authorized Signatories. + /// + public virtual IEnumerable HistoricAuthorizedSignatories { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationAuthorizedSignatory.cs b/DanishCvr/Responses/Models/RelationAuthorizedSignatory.cs new file mode 100644 index 0000000..4a838f5 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationAuthorizedSignatory.cs @@ -0,0 +1,6 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Authorized Signatory. +/// +public class RelationAuthorizedSignatory : BaseRelationRole; \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationBeneficialOwner.cs b/DanishCvr/Responses/Models/RelationBeneficialOwner.cs new file mode 100644 index 0000000..b174e8f --- /dev/null +++ b/DanishCvr/Responses/Models/RelationBeneficialOwner.cs @@ -0,0 +1,32 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Beneficial Owner. +/// +public class RelationBeneficialOwner : BaseRelationRole +{ + /// + /// Equity. + /// + public virtual Equity Equity { get; set; } = new(); + + /// + /// Ownership Special. + /// + public virtual OwnershipSpecials OwnershipSpecial { get; set; } = new(); + + /// + /// Voting Rights. + /// + public virtual VotingRights VotingRights { get; set; } = new(); + + /// + /// Collateral Voting Rights. + /// + public virtual VotingRights CollateralVotingRights { get; set; } = new(); + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationBoardMember.cs b/DanishCvr/Responses/Models/RelationBoardMember.cs new file mode 100644 index 0000000..bbf5e94 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationBoardMember.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Board Member. +/// +public class RelationBoardMember : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } + + /// + /// Alternate For. + /// + public virtual string AlternateFor { get; set; } + + /// + /// Is Directive 8 Approved. + /// + public virtual bool? IsDirective8Approved { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationBoardMembers.cs b/DanishCvr/Responses/Models/RelationBoardMembers.cs new file mode 100644 index 0000000..cb98b3b --- /dev/null +++ b/DanishCvr/Responses/Models/RelationBoardMembers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Board Members. +/// +public class RelationBoardMembers +{ + /// + /// Current. + /// + public virtual RelationBoardMember Current { get; set; } + + /// + /// Historic Board Members. + /// + public virtual IEnumerable HistoricBoardMembers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationCertifiedAuditor.cs b/DanishCvr/Responses/Models/RelationCertifiedAuditor.cs new file mode 100644 index 0000000..1162309 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationCertifiedAuditor.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Certified Auditor. +/// +public class RelationCertifiedAuditor : BaseRelationRole +{ + /// + /// Role. + /// + public virtual string Role { get; set; } + + /// + /// Business Address. + /// + public virtual string BusinessAddress { get; set; } + + /// + /// Voting Rights. + /// + public virtual AuditorVotingRights VotingRights { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationCertifiedAuditors.cs b/DanishCvr/Responses/Models/RelationCertifiedAuditors.cs new file mode 100644 index 0000000..53ab4ac --- /dev/null +++ b/DanishCvr/Responses/Models/RelationCertifiedAuditors.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Certified Auditors. +/// +public class RelationCertifiedAuditors +{ + /// + /// Current. + /// + public virtual RelationCertifiedAuditor Current { get; set; } + + /// + /// Historic Certified Auditors. + /// + public virtual IEnumerable HistoricCertifiedAuditors { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationDebugResult.cs b/DanishCvr/Responses/Models/RelationDebugResult.cs new file mode 100644 index 0000000..ee81746 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationDebugResult.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Result. +/// +public class RelationDebugResult : BaseDebugResult +{ + /// + /// Companies. + /// + public virtual IEnumerable Companies { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationExecutive.cs b/DanishCvr/Responses/Models/RelationExecutive.cs new file mode 100644 index 0000000..a505262 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationExecutive.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Executive. +/// +public class RelationExecutive : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationExecutives.cs b/DanishCvr/Responses/Models/RelationExecutives.cs new file mode 100644 index 0000000..41dce38 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationExecutives.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Executives. +/// +public class RelationExecutives +{ + /// + /// Current. + /// + public virtual RelationExecutive Current { get; set; } + + /// + /// Historic Executives. + /// + public virtual IEnumerable HistoricExecutives { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationFounder.cs b/DanishCvr/Responses/Models/RelationFounder.cs new file mode 100644 index 0000000..c2a1449 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationFounder.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Founder. +/// +public class RelationFounder : BaseRelationRole +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationLegalOwner.cs b/DanishCvr/Responses/Models/RelationLegalOwner.cs new file mode 100644 index 0000000..e497c03 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationLegalOwner.cs @@ -0,0 +1,27 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Legal Owner. +/// +public class RelationLegalOwner : BaseRelationRole +{ + /// + /// Registration Number. + /// + public virtual string RegistrationNumber { get; set; } + + /// + /// Equity. + /// + public virtual Equity Equity { get; set; } = new(); + + /// + /// Voting Rights. + /// + public virtual VotingRights VotingRights { get; set; } = new(); + + /// + /// Notes. + /// + public virtual string Notes { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationLiableParticipant.cs b/DanishCvr/Responses/Models/RelationLiableParticipant.cs new file mode 100644 index 0000000..f7f0b6d --- /dev/null +++ b/DanishCvr/Responses/Models/RelationLiableParticipant.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Liable Participant. +/// +public class RelationLiableParticipant : BaseRelationRole +{ + /// + /// Role. + /// + public virtual string Role { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } + + /// + /// Registered Capital. + /// + public virtual RegisteredCapital RegisteredCapital { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationLiableParticipants.cs b/DanishCvr/Responses/Models/RelationLiableParticipants.cs new file mode 100644 index 0000000..7bc437d --- /dev/null +++ b/DanishCvr/Responses/Models/RelationLiableParticipants.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Liable Participants. +/// +public class RelationLiableParticipants +{ + /// + /// Current. + /// + public virtual RelationLiableParticipant Current { get; set; } + + /// + /// Historic Liable Participants. + /// + public virtual IEnumerable HistoricLiableParticipants { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationLiquidator.cs b/DanishCvr/Responses/Models/RelationLiquidator.cs new file mode 100644 index 0000000..a5cfd15 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationLiquidator.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Liquidator. +/// +public class RelationLiquidator : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Appointed By. + /// + public virtual string AppointedBy { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationManager.cs b/DanishCvr/Responses/Models/RelationManager.cs new file mode 100644 index 0000000..2519781 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationManager.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Manager. +/// +public class RelationManager : BaseRelationRole +{ + /// + /// Title. + /// + public virtual string Title { get; set; } + + /// + /// Election Method. + /// + public virtual string ElectionMethod { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationManagers.cs b/DanishCvr/Responses/Models/RelationManagers.cs new file mode 100644 index 0000000..c12c946 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationManagers.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Managers. +/// +public class RelationManagers +{ + /// + /// Current. + /// + public virtual RelationManager Current { get; set; } + + /// + /// Historic Managers. + /// + public virtual IEnumerable HistoricManagers { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationResult.cs b/DanishCvr/Responses/Models/RelationResult.cs new file mode 100644 index 0000000..a137a79 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationResult.cs @@ -0,0 +1,35 @@ +using DanishCvr.Responses.Models.Enums; +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Result. +/// +public class RelationResult : BaseCompany +{ + /// + /// Name. + /// + public virtual Name Name { get; set; } + + /// + /// Type. + /// + public virtual BusinessType Type { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } + + /// + /// Roles. + /// + public virtual RelationRoles Roles { get; set; } = new(); + + /// + /// Aktive Roles. + /// + public virtual IEnumerable ActiveRoles { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationRoles.cs b/DanishCvr/Responses/Models/RelationRoles.cs new file mode 100644 index 0000000..ffeb99a --- /dev/null +++ b/DanishCvr/Responses/Models/RelationRoles.cs @@ -0,0 +1,77 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Relation Roles. +/// +public class RelationRoles +{ + /// + /// Founder. + /// + public virtual RelationFounder Founder { get; set; } + + /// + /// Legal Owner. + /// + public virtual RelationLegalOwner LegalOwner { get; set; } + + /// + /// Beneficial Owner. + /// + public virtual RelationBeneficialOwner BeneficialOwner { get; set; } + + /// + /// Liquidator. + /// + public virtual RelationLiquidator Liquidator { get; set; } + + /// + /// Auditors. + /// + public virtual RelationAuditors Auditors { get; set; } + + /// + /// Executives. + /// + public virtual RelationExecutives Executives { get; set; } + + /// + /// Board Members. + /// + public virtual RelationBoardMembers BoardMembers { get; set; } + + /// + /// Managers. + /// + public virtual RelationManagers Managers { get; set; } + + /// + /// Anti Money Laundering Appointees. + /// + public virtual RelationAntiMoneyLaunderingAppointees AntiMoneyLaunderingAppointees { get; set; } + + /// + /// Authorized Signatories. + /// + public virtual RelationAuthorizedSignatories AuthorizedSignatories { get; set; } + + /// + /// Special Financial Participants. + /// + public virtual RelationSpecialFinancialParticipants SpecialFinancialParticipants { get; set; } + + /// + /// Liable Participants. + /// + public virtual RelationLiableParticipants LiableParticipants { get; set; } + + /// + /// Association Representatives. + /// + public virtual RelationAssociationRepresentatives AssociationRepresentatives { get; set; } + + /// + /// Certified Auditors. + /// + public virtual RelationCertifiedAuditors CertifiedAuditors { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationSpecialFinancialParticipant.cs b/DanishCvr/Responses/Models/RelationSpecialFinancialParticipant.cs new file mode 100644 index 0000000..ccdcae8 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationSpecialFinancialParticipant.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// RelationSpecial Financial Participant. +/// +public class RelationSpecialFinancialParticipant : BaseRelationRole +{ + /// + /// Type. + /// + public virtual string Type { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/RelationSpecialFinancialParticipants.cs b/DanishCvr/Responses/Models/RelationSpecialFinancialParticipants.cs new file mode 100644 index 0000000..a62d6f6 --- /dev/null +++ b/DanishCvr/Responses/Models/RelationSpecialFinancialParticipants.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Relation Special Financial Participants. +/// +public class RelationSpecialFinancialParticipants +{ + /// + /// Current. + /// + public virtual RelationSpecialFinancialParticipant Current { get; set; } + + /// + /// Historic Special Financial Participants. + /// + public virtual IEnumerable HistoricSpecialFinancialParticipants { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Share.cs b/DanishCvr/Responses/Models/Share.cs new file mode 100644 index 0000000..df81ea2 --- /dev/null +++ b/DanishCvr/Responses/Models/Share.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Share. +/// +public class Share : DateAndPeriod +{ + /// + /// Share Class. + /// + public virtual string ShareClass { get; set; } + + /// + /// Share Percentage. + /// + public virtual double SharePercentage { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/SpecialFinancialParticipant.cs b/DanishCvr/Responses/Models/SpecialFinancialParticipant.cs new file mode 100644 index 0000000..a2100fa --- /dev/null +++ b/DanishCvr/Responses/Models/SpecialFinancialParticipant.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Special Financial Participant. +/// +public class SpecialFinancialParticipant : BaseRelation +{ + /// + /// Type. + /// + public virtual string Type { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/SpecialFinancialParticipants.cs b/DanishCvr/Responses/Models/SpecialFinancialParticipants.cs new file mode 100644 index 0000000..0f62b49 --- /dev/null +++ b/DanishCvr/Responses/Models/SpecialFinancialParticipants.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Special Financial Participants. +/// +public class SpecialFinancialParticipants +{ + /// + /// Current. + /// + public virtual IEnumerable Current { get; set; } = new List(); + + /// + /// Historic Special Financial Participants. + /// + public virtual IEnumerable HistoricSpecialFinancialParticipants { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Status.cs b/DanishCvr/Responses/Models/Status.cs new file mode 100644 index 0000000..d705c87 --- /dev/null +++ b/DanishCvr/Responses/Models/Status.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Status. +/// +public class Status : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/StatusResult.cs b/DanishCvr/Responses/Models/StatusResult.cs new file mode 100644 index 0000000..7c8df5a --- /dev/null +++ b/DanishCvr/Responses/Models/StatusResult.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Status Result. +/// +public class StatusResult +{ + /// + /// Text. + /// + public virtual string Text { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Statuses.cs b/DanishCvr/Responses/Models/Statuses.cs new file mode 100644 index 0000000..5b47103 --- /dev/null +++ b/DanishCvr/Responses/Models/Statuses.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Statuses. +/// +public class Statuses +{ + /// + /// Current. + /// + public virtual Status Current { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } + + /// + /// Credit Status. + /// + public virtual CreditStatuses CreditStatus { get; set; } + + /// + /// Historic Statuses. + /// + public virtual IEnumerable HistoricStatuses { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/StatusesSimple.cs b/DanishCvr/Responses/Models/StatusesSimple.cs new file mode 100644 index 0000000..0b48665 --- /dev/null +++ b/DanishCvr/Responses/Models/StatusesSimple.cs @@ -0,0 +1,17 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Statuses Simple. +/// +public class StatusesSimple +{ + /// + /// Current. + /// + public virtual Status Current { get; set; } + + /// + /// Is Active. + /// + public virtual bool IsActive { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Votes.cs b/DanishCvr/Responses/Models/Votes.cs new file mode 100644 index 0000000..a5ebb35 --- /dev/null +++ b/DanishCvr/Responses/Models/Votes.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Voting Rights. +/// +public class Votes : DateAndPeriod +{ + /// + /// Value. + /// + public virtual double Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/VotingRights.cs b/DanishCvr/Responses/Models/VotingRights.cs new file mode 100644 index 0000000..45486a5 --- /dev/null +++ b/DanishCvr/Responses/Models/VotingRights.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Voting Rights. +/// +public class VotingRights +{ + /// + /// Current. + /// + public virtual Votes Current { get; set; } + + /// + /// Historic Values. + /// + public virtual IEnumerable HistoricValues { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Website.cs b/DanishCvr/Responses/Models/Website.cs new file mode 100644 index 0000000..1e53955 --- /dev/null +++ b/DanishCvr/Responses/Models/Website.cs @@ -0,0 +1,12 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Website. +/// +public class Website : DateAndPeriod +{ + /// + /// Value. + /// + public virtual string Value { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/Websites.cs b/DanishCvr/Responses/Models/Websites.cs new file mode 100644 index 0000000..041f7d7 --- /dev/null +++ b/DanishCvr/Responses/Models/Websites.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace DanishCvr.Responses.Models; + +/// +/// Websites. +/// +public class Websites +{ + /// + /// Current. + /// + public virtual Website Current { get; set; } + + /// + /// Historic Websites. + /// + public virtual IEnumerable HistoricWebsites { get; set; } = new List(); +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ZipCode.cs b/DanishCvr/Responses/Models/ZipCode.cs new file mode 100644 index 0000000..1619875 --- /dev/null +++ b/DanishCvr/Responses/Models/ZipCode.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace DanishCvr.Responses.Models; + +/// +/// Zip Code. +/// +public class ZipCode +{ + /// + /// Href. + /// + public virtual string Href { get; set; } + + /// + /// Nr. + /// + public virtual string Nr { get; set; } + + /// + /// Navn. + /// + public virtual string Navn { get; set; } + + /// + /// Stor Modtager Adresser. + /// + public virtual string StorModtagerAdresser { get; set; } + + /// + /// Bbox. + /// + public virtual double[] Bbox { get; set; } + + /// + /// Visuelt Center. + /// + public virtual double[] VisueltCenter { get; set; } + + /// + /// Kommuner. + /// + public virtual IEnumerable Kommuner { get; set; } = new List(); + + /// + /// Ændret. + /// + public virtual DateTimeOffset? Ændret { get; set; } + + /// + /// Geo Ændret. + /// + [JsonProperty("geo_ændret")] + public virtual DateTimeOffset? GeoÆndret { get; set; } + + /// + /// Geo Version. + /// + [JsonProperty("geo_version")] + public virtual int GeoVersion { get; set; } + + /// + /// Dag Id. + /// + [JsonProperty("dagi_id")] + public virtual int DagiId { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/Models/ZipCodeKommune.cs b/DanishCvr/Responses/Models/ZipCodeKommune.cs new file mode 100644 index 0000000..e1804ac --- /dev/null +++ b/DanishCvr/Responses/Models/ZipCodeKommune.cs @@ -0,0 +1,22 @@ +namespace DanishCvr.Responses.Models; + +/// +/// Zip Code. +/// +public class ZipCodeKommune +{ + /// + /// Href. + /// + public virtual string Href { get; set; } + + /// + /// Kode. + /// + public virtual int Kode { get; set; } + + /// + /// Navn. + /// + public virtual string Navn { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/PersonResponse.cs b/DanishCvr/Responses/PersonResponse.cs new file mode 100644 index 0000000..802d47c --- /dev/null +++ b/DanishCvr/Responses/PersonResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Person Response. +/// +public class PersonResponse : BaseResultResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/PersonsAutoCompleteResponse.cs b/DanishCvr/Responses/PersonsAutoCompleteResponse.cs new file mode 100644 index 0000000..5b4027d --- /dev/null +++ b/DanishCvr/Responses/PersonsAutoCompleteResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Persons Auto Complete Response. +/// +public class PersonsAutoCompleteResponse : BaseAutoCompleteResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/PersonsSearchResponse.cs b/DanishCvr/Responses/PersonsSearchResponse.cs new file mode 100644 index 0000000..ac255a5 --- /dev/null +++ b/DanishCvr/Responses/PersonsSearchResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Persons Search Response. +/// +public class PersonsSearchResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/ProductionUnitResponse.cs b/DanishCvr/Responses/ProductionUnitResponse.cs new file mode 100644 index 0000000..56836c1 --- /dev/null +++ b/DanishCvr/Responses/ProductionUnitResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Production Unit Response. +/// +public class ProductionUnitResponse : BaseResultResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/ProductionUnitsResponse.cs b/DanishCvr/Responses/ProductionUnitsResponse.cs new file mode 100644 index 0000000..062297a --- /dev/null +++ b/DanishCvr/Responses/ProductionUnitsResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Production Units Response. +/// +public class ProductionUnitsResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/ProductionUnitsSearchResponse.cs b/DanishCvr/Responses/ProductionUnitsSearchResponse.cs new file mode 100644 index 0000000..4ce1c84 --- /dev/null +++ b/DanishCvr/Responses/ProductionUnitsSearchResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Production Units Search Response. +/// +public class ProductionUnitsSearchResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/RegistrationTextsResponse.cs b/DanishCvr/Responses/RegistrationTextsResponse.cs new file mode 100644 index 0000000..65116c1 --- /dev/null +++ b/DanishCvr/Responses/RegistrationTextsResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Registration Texts Response. +/// +public class RegistrationTextsResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Responses/RelationsResponse.cs b/DanishCvr/Responses/RelationsResponse.cs new file mode 100644 index 0000000..d8ce9b1 --- /dev/null +++ b/DanishCvr/Responses/RelationsResponse.cs @@ -0,0 +1,16 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Relations Response. +/// +public class RelationsResponse : BaseResultResponse +{ + /// + /// Total Results. + /// Not the returned results, but the total number of results, + /// that matched the criteria. + /// + public long TotalResults { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Responses/StatusesResponse.cs b/DanishCvr/Responses/StatusesResponse.cs new file mode 100644 index 0000000..fc99d98 --- /dev/null +++ b/DanishCvr/Responses/StatusesResponse.cs @@ -0,0 +1,8 @@ +using DanishCvr.Responses.Models; + +namespace DanishCvr.Responses; + +/// +/// Statuses Response. +/// +public class StatusesResponse : BaseResultsResponse; \ No newline at end of file diff --git a/DanishCvr/Types/Location.cs b/DanishCvr/Types/Location.cs new file mode 100644 index 0000000..3813f6f --- /dev/null +++ b/DanishCvr/Types/Location.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Types; + +/// +/// Geo Coordinate. +/// +public class Location +{ + /// + /// Latitude. + /// + [Range(-90, 90)] + public virtual double Latitude { get; set; } + + /// + /// Longitude. + /// + [Range(-180, 180)] + public virtual double Longitude { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Types/Period.cs b/DanishCvr/Types/Period.cs new file mode 100644 index 0000000..53ac5a3 --- /dev/null +++ b/DanishCvr/Types/Period.cs @@ -0,0 +1,36 @@ +using System; + +namespace DanishCvr.Types; + +/// +/// Period. +/// +public class Period +{ + /// + /// From. + /// + public virtual DateOnly? From { get; set; } + + /// + /// To. + /// + public virtual DateOnly? To { get; set; } + + /// + /// Is Valid. + /// + /// Whether the is valid. + public virtual bool IsValid() + { + return + ( + this.From == null || + this.From <= DateOnly.FromDateTime(DateTime.UtcNow) + ) && + ( + this.To == null || + this.To >= DateOnly.FromDateTime(DateTime.UtcNow) + ); + } +} \ No newline at end of file diff --git a/DanishCvr/Types/Range.cs b/DanishCvr/Types/Range.cs new file mode 100644 index 0000000..e6f4d0f --- /dev/null +++ b/DanishCvr/Types/Range.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Types; + +/// +/// Range. +/// +public class Range +{ + /// + /// From. + /// + [Range(0, int.MaxValue)] + public virtual int? From { get; set; } + + /// + /// To. + /// + [Range(0, int.MaxValue)] + public virtual int? To { get; set; } +} \ No newline at end of file diff --git a/DanishCvr/Types/Within.cs b/DanishCvr/Types/Within.cs new file mode 100644 index 0000000..f96d7a8 --- /dev/null +++ b/DanishCvr/Types/Within.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace DanishCvr.Types; + +/// +/// Location. +/// +public class Within +{ + /// + /// Location. + /// + public virtual Location Location { get; set; } + + /// + /// Radius. + /// In meters. + /// + [Range(1, int.MaxValue)] + public virtual int Radius { get; set; } = 25000; +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ba1038a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Michael Vivet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index c449247..17b8736 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,99 @@ # DanishCvr -Look up Danish companies, production units and persons in the Central Business Register (CVR) +[![Build and Deploy](https://github.com/Vivet/DanishCvr/actions/workflows/build-and-deploy.yml/badge.svg)](https://github.com/Vivet/DanishCvr/actions/workflows/build-and-deploy.yml) +[![NuGet](https://img.shields.io/nuget/dt/DanishCvr.svg)](https://www.nuget.org/packages/DanishCvr/) +[![NuGet](https://img.shields.io/nuget/v/DanishCvr.svg)](https://www.nuget.org/packages/DanishCvr/) + +A .NET library for looking up Danish companies, production units, persons and ownership relations in the Central Business Register (CVR). + +It wraps the CVR system-to-system service from Erhvervsstyrelsen (Elasticsearch) in a typed, async API, so you do not have to write Elasticsearch queries or parse the raw documents yourself. All data is mapped from CVR into strongly typed response models, with current values and the history of earlier ones side by side. + +What you can do: + +* Look up companies by CVR number, external id or number prefix. +* Search and auto-complete companies and persons, with criteria, sorting and paging. +* Get production units, registration texts and relations. +* Get the reference lists for business types, statuses and industries (DB07). +* Walk the whole register with the batch service, for building a local copy. + +A company response covers, among other things: + +* Names and alternative names, addresses, contact details, business type, industry and status (including credit status). +* Founders, founding date and financial years, employment, equity and financial purpose. +* Auditors and certified auditors, including their registration. +* Legal owners, beneficial owners, beneficiaries, board members, executives, managers, liquidators and authorized signatories. +* Liable participants, parent companies, mergers and splits, bylaws, anti-money-laundering appointees and association representatives. + +Production units, persons and the relations between them (who is owner, board member, auditor and so on) are mapped the same way. + +*** + +### Configuration and Registration + +Add the following to the configuration. + +```json +"DanishCvr": { + "Username": "", + "Password": "" +} +``` + +💡 You need a CVR user to fill in the credentials. See [Get Access to CVR Data](#get-access-to-cvr-data). + +Then register the services in the service collection, in start-up. + +```csharp +services + .AddDanishCvr(); +``` + +*** + +### Get Access to CVR Data + +The CVR data is free, but you need a user from Erhvervsstyrelsen. The library authenticates with the user id and password you receive. + +1. Open the article [System-til-systemadgang til CVR-data](https://datacvr.virk.dk/artikel/system-til-system-adgang-til-cvr-data) on datacvr.virk.dk. +2. Follow the link "Anmod om adgang til system-til-systemløsningen" and fill in [the form](https://blanket.virk.dk/blanketafvikler/orbeon/fr/public_v/6_7665510f1e2bc7bd3b9c6acd0d32b4a773f13517/new). +3. Wait for the user to be created. Erhvervsstyrelsen states a normal processing time of three weeks. You then receive your user details by email. +4. Put the user id and password in the configuration shown under [Configuration and Registration](#configuration-and-registration). + +More information: + +* [Kom godt i gang med Elasticsearch](https://erhvervsstyrelsen.dk/kom-godt-igang-med-elasticSearch), the official guide to the search service (Elasticsearch 6.8). +* Questions about CVR data: cvrselvbetjening@erst.dk. Erhvervsstyrelsen does not give support on Elasticsearch itself. + +*** + +### Services and Methods + +Both services are registered by `AddDanishCvr()`. + +#### IDanishCvrService + +| Method | Description | Returns | +|---|---|---| +| `GetCompanyBusinessTypesAsync` | All business types (company forms) with code, abbreviation and name. | `BusinessTypesResponse` | +| `GetCompanyStatusesAsync` | All company statuses. | `StatusesResponse` | +| `GetCompanyIndustriesAsync` | All industry codes (DB07). | `IndustriesResponse` | +| `GetCompanyAsync` | One company by CVR number. | `CompanyResponse` | +| `GetCompanyByExternalIdAsync` | One company by external id. | `CompanyResponse` | +| `GetCompaniesAsync` (numbers) | Several companies by a list of CVR numbers. | `CompaniesSearchResponse` | +| `GetCompaniesAsync` (prefix) | Companies whose CVR number starts with a prefix, with paging. | `CompaniesResponse` | +| `AutoCompleteCompaniesAsync` | Company suggestions for a partial name. | `CompaniesAutoCompleteResponse` | +| `SearchCompaniesAsync` | Search companies by criteria, with sorting and paging. | `CompaniesSearchResponse` | +| `GetCompanyRegistrationTextsAsync` | Registration texts for a company, with paging. | `RegistrationTextsResponse` | +| `GetProductionUnitAsync` | One production unit by id. | `ProductionUnitResponse` | +| `GetProductionUnitsAsync` | The production units of a company, optionally including historic ones. | `ProductionUnitsResponse` | +| `SearchProductionUnitsAsync` | Search production units by criteria. | `ProductionUnitsSearchResponse` | +| `GetPersonAsync` | One person by external id. | `PersonResponse` | +| `AutoCompletePersonsAsync` | Person suggestions for a partial name. | `PersonsAutoCompleteResponse` | +| `SearchPersonsAsync` | Search persons by criteria. | `PersonsSearchResponse` | +| `GetRelationsAsync` | Relations of a company or person (owners, board and more), optionally including historic ones. | `RelationsResponse` | + +#### IDanishCvrBatchService + +| Method | Description | Returns | +|---|---|---| +| `SearchAllAsync` | Walks all CVR number prefixes in parallel and hands each batch of companies to a callback. Used to build a local copy of the register. | `DebugInformation` | + diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..b460b3b Binary files /dev/null and b/icon.png differ