import type { DatasetCreateResponse } from '../types' const DATASET_LABEL_BY_LAYER: Record = { buildings: 'Bebouwing', roads: 'Wegen', water: 'Water', bathymetry_profiles: 'Dwarsprofielen waterbodem', parcels: 'Percelen', population: 'Bevolking', forest: 'Bos en groen', nature_value: 'Natuurwaarde', agriculture: 'Landbouwgebruikspercelen', soil: 'Digitale bodemkaart', flood_hazard: 'Overstromingsgevaar', elevation: 'Hoogte en reliëf', space_occupation: 'Ruimtebeslag', open_space: 'Open ruimte', accessibility: 'Knooppuntwaarde', services: 'Voorzieningenniveau', land_cover: 'Landbedekking', building_registry: 'Gebouwenregister', regional_boundary: 'Grens vervoerregio Kempen', municipality_boundaries: 'Gemeentegrenzen Kempen', } const DATASET_SOURCE_LABELS: Record = { department_omgeving_land_use: 'Departement Omgeving', agentschap_landbouw_zeevisserij_agricultural_parcels: 'Agentschap Landbouw en Zeevisserij', digitaal_vlaanderen_orthophoto: 'Digitaal Vlaanderen', spw_orthophoto: 'SPW Orthofoto', urbis_orthophoto: 'Paradigm UrbIS', digitaal_vlaanderen_buildings_addresses_register: 'Digitaal Vlaanderen', digitaal_vlaanderen_dhmv: 'Digitaal Vlaanderen', spw_terrain: 'Service public de Wallonie', grb: 'GRB', historical_landuse: 'Digitaal Vlaanderen', inbo_bwk_natura2000: 'INBO', statbel: 'Statbel', vrbg: 'Digitaal Vlaanderen', waterinfo: 'Waterinfo Vlaanderen', vmm_flood_hazard: 'Vlaamse Milieumaatschappij', vmm_vha_bathymetry_profiles: 'VMM / Vlaamse Hydrografische Atlas', spw_bathymetry: 'Service public de Wallonie', spw_walous_land_cover: 'Service public de Wallonie', spw_flood_hazard: 'Service public de Wallonie', department_omgeving_thematic_raster: 'Departement Omgeving', dov_soil_map: 'Databank Ondergrond Vlaanderen', } export function getDatasetSourceDisplayName(dataset: DatasetCreateResponse): string { const source = (dataset.source_name ?? dataset.source).toLowerCase() return DATASET_SOURCE_LABELS[source] ?? dataset.source_name ?? dataset.source } export function getDatasetDisplayName(dataset: DatasetCreateResponse): string { if (dataset.source_name === 'digitaal_vlaanderen_dhmv') { const productName = dataset.source_metadata?.['product_display_name'] return typeof productName === 'string' && productName.trim() ? productName : 'DHMV II hoogtemodel' } if (dataset.source_name === 'spw_terrain') { const productName = dataset.source_metadata?.['product_display_name'] return typeof productName === 'string' && productName.trim() ? productName : 'SPW terreinmodel 2021-2022' } if (dataset.source_name === 'vmm_flood_hazard') { const productName = dataset.source_metadata?.['product_display_name'] return typeof productName === 'string' && productName.trim() ? productName : 'VMM-overstromingsscenario' } if (dataset.source_name === 'vmm_vha_bathymetry_profiles') { return 'VHA-dwarsprofielen waterbodem' } if (dataset.source_name === 'spw_bathymetry') { return 'SPW waterbodemhoogte 0,5 m' } if (dataset.source_name === 'department_omgeving_thematic_raster') { const productName = dataset.source_metadata?.['product_display_name'] return typeof productName === 'string' && productName.trim() ? productName : 'Officieel Vlaams themaraster' } if (dataset.source_name === 'spw_walous_land_cover') { const productName = dataset.source_metadata?.['product_display_name'] return typeof productName === 'string' && productName.trim() ? productName : 'WALOUS landbedekking' } const layer = (dataset.reference_layer_name ?? dataset.source_metadata?.layer_name ?? dataset.source_metadata?.layer_type ?? '') .toString() .toLowerCase() const coverageScope = String(dataset.source_metadata?.coverage_scope ?? '').toLowerCase() const label = coverageScope === 'flanders' && layer === 'regional_boundary' ? 'Grens Vlaanderen' : coverageScope === 'flanders' && layer === 'municipality_boundaries' ? 'Gemeentegrenzen Vlaanderen' : DATASET_LABEL_BY_LAYER[layer] if (!label) { return dataset.name } const source = getDatasetSourceDisplayName(dataset) return `${label} · ${source}` }