oedb-backend/frontend/src/oedb-types.ts
2025-10-13 10:49:13 +02:00

468 lines
15 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const oedb = {
presets: {
what: {
'community': {
label: 'Événement de base',
description: 'Événement communautaire',
category: 'Communauté',
emoji: '\\o/',
durationHours: 24
},
// Community / OSM
'community.osm.event': {
emoji: '🗺️',
label: 'Événement OpenStreetMap',
category: 'Communauté',
description: 'Événement lié à la communauté OpenStreetMap'
},
'culture': {
emoji: '📅',
label: 'Culture',
category: 'Autre',
description: 'Événement de type Culture ouvert au public',
durationHours: 24,
properties: {
createdate: {label: 'Createdate', writable: true},
lastupdate: {label: 'Lastupdate', writable: true},
start: {label: 'Start', writable: true},
stop: {label: 'Stop', writable: true},
type: {label: 'Type', writable: true}
}
},
'culture.floss': {
emoji: '📅',
label: 'Culture Free Libre open source software',
category: 'Autre',
description: 'Événement de type Culture Floss',
durationHours: 24,
properties: {}
}, 'culture.viparis': {
emoji: '📅',
label: 'Évènements organisés par Viparis',
category: 'Autre',
description: 'Événement culturel par Viparis, une entreprise qui gère plusieurs grandes salles en Île de France.',
durationHours: 24,
properties: {}
},
// Culture / Arts
'culture.arts': {
emoji: '🎨',
label: 'Arts et culture',
category: 'Culture',
description: 'Événement artistique et culturel'
},
'culture.geek': {
emoji: '🤓',
label: 'Culture geek',
category: 'Culture',
description: 'Événement geek, technologie, gaming'
},
'culture.music': {
emoji: '🎵',
label: 'Musique',
category: 'Culture',
description: 'Événement musical général'
},
// Music specific
'music.festival': {
emoji: '🎪',
label: 'Festival de musique',
category: 'Musique',
description: 'Festival musical'
},
// Power / Energy
'power.production.unavail': {
emoji: '⚡',
label: 'Production électrique indisponible',
category: 'Énergie',
description: 'Arrêt ou réduction de production électrique'
},
'power.lights.should_be_off': {
emoji: '💡',
label: 'Lumières devraient être éteintes',
category: 'Énergie',
description: 'Lumières éteintes',
durationHours: 300
},
'power.lights.should_be_on': {
emoji: '💡',
label: 'Lumières devraient être allumées',
category: 'Énergie',
description: 'Lumières allumées',
durationHours: 300
},
'power.evse.unavail': {
emoji: '🔌',
label: 'IRVE indisponible',
category: 'Énergie - infrastructure de recharge',
description: 'Arrêt ou réduction de recharge',
durationHours: 300
},
'power.evse.capacity': {
emoji: '🔌',
label: 'IRVE disponible',
category: 'Énergie - infrastructure de recharge',
description: 'Infrastructure de recharge disponible',
durationHours: 300,
properties: {
"capacity:vehicles": {label: 'Nombre de véhicules qui peuvent actuellement se brancher', writable: true},
"capacity:vehicles:max": {label: 'Nombre de véhicules maximum à pouvoir se brancher', writable: true}
}
},
'traffic.counter.bicycle': {
emoji: '🚲',
label: 'Compteur de vélos',
category: 'Circulation',
description: 'Compteur de vélos',
durationHours: 300
},
'traffic.counter.car': {
emoji: '🚗',
label: 'Compteur de voitures',
category: 'Circulation',
description: 'Compteur de voitures',
durationHours: 300
},
// Sale / Commerce
'sale': {
emoji: '🛒',
label: 'Vente / Commerce',
category: 'Commerce',
description: 'Événement commercial, vente, marché'
},
// Time / Temporal
'time.daylight.summer': {
emoji: '☀️',
label: 'Heure d\'été',
category: 'Temps',
description: 'Passage à l\'heure d\'été',
durationHours: 24
},
// Tourism
'tourism.exhibition': {
emoji: '🖼️',
label: 'Exposition',
category: 'Tourisme',
description: 'Exposition, salon, foire'
},
// Traffic / Transportation
'traffic.accident': {
emoji: '💥',
label: 'Accident',
category: 'Circulation',
description: 'Accident de la circulation',
durationHours: 6,
properties: {
severity: {label: 'Gravité', writable: true},
lanes_closed: {label: 'Voies fermées', writable: true},
vehicles: {label: 'Nombre de véhicules', writable: true}
}
},
'traffic.incident': {
emoji: '⚠️',
label: 'Incident de circulation',
category: 'Circulation',
description: 'Incident sur la route'
},
'traffic.obstacle': {
emoji: '🚧',
label: 'Obstacle',
category: 'Circulation',
description: 'Obstacle sur la voie'
},
'traffic.partially_closed': {
emoji: '🚦',
label: 'Voie partiellement fermée',
category: 'Circulation',
description: 'Fermeture partielle de voie'
},
'traffic.roadwork': {
emoji: '',
image: 'static/cone.png',
label: 'Travaux routiers',
category: 'Circulation',
description: 'Travaux sur la chaussée',
durationHours: 72,
properties: {
contractor: {label: 'Entreprise', writable: true},
reason: {label: 'Raison', writable: true},
lanes_affected: {label: 'Voies impactées', writable: true}
}
},
'traffic.OperatorAction.NetworkManagement.RoadOrCarriagewayOrLaneManagement': {
emoji: '',
image: 'static/cone.png',
label: 'Travaux de voirie',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction NetworkManagement RoadOrCarriagewayOrLaneManagement',
durationHours: 24,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.OperatorAction.MaintenanceWorks': {
emoji: '',
image: 'static/cone.png',
label: 'Travaux d\'entretien de voirie',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction NetworkManagement RoadOrCarriagewayOrLaneManagement',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.OperatorAction.NetworkManagement.ReroutingManagement': {
emoji: '',
image: 'static/cone.png',
label: 'Gestion des déviations de voirie',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction NetworkManagement ReroutingManagement',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.OperatorAction.ConstructionWorks': {
emoji: '',
image: 'static/cone.png',
label: 'Travaux de construction',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction ConstructionWorks',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.OperatorAction.NetworkManagement.SpeedManagement': {
emoji: '',
image: 'static/cone.png',
label: 'Gestion de la vitesse Limitation temporaire de vitesse',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction SpeedManagement',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
// Gestion générale du réseau
'traffic.OperatorAction.NetworkManagement.GeneralNetworkManagement': {
emoji: '',
image: 'static/cone.png',
label: 'Gestion générale du réseau',
category: 'Circulation',
description: 'Événement de type Traffic OperatorAction GeneralNetworkManagement',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.closed': {
emoji: '⛔',
label: 'Chaussée fermée',
category: 'Circulation',
description: 'Événement de type Traffic Closed',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.TrafficElement.GeneralInstructionOrMessageToRoadUsers': {
emoji: '',
image: 'static/cone.png',
label: 'Instruction ou message aux usagers',
category: 'Circulation',
description: 'Événement de type Traffic TrafficElement GeneralInstructionOrMessageToRoadUsers',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.TrafficElement.Obstruction.GeneralObstruction': {
emoji: '',
image: 'static/cone.png',
label: 'Obstruction générale',
category: 'Circulation',
description: 'Événement de type Traffic TrafficElement Obstruction GeneralObstruction',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.TrafficElement.Obstruction.InfrastructureDamageObstruction': {
emoji: '⛔',
label: 'Obstruction d\'infrastructure',
category: 'Circulation',
description: 'Événement de type Traffic TrafficElement Obstruction InfrastructureDamageObstruction',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.TrafficElement.Obstruction.EnvironmentalObstruction': {
emoji: '⛔',
label: 'Obstruction environnementale',
category: 'Circulation',
description: 'Événement de type Traffic TrafficElement Obstruction EnvironmentalObstruction',
durationHours: 200,
properties: {
source: {label: 'Source', writable: true},
}
},
'traffic.obstacle.flood': {
emoji: '🌊',
label: 'Chaussée inondée',
category: 'Circulation',
description: 'Chaussée inondée',
durationHours: 50,
},
'wildlife': {
emoji: '🦌',
label: 'Animal',
category: 'Vie sauvage',
description: 'Détection d\'animaux',
properties: {
detection_by: {
values: ['human', 'camera'],
default: 'human',
allow_empty: true,
allow_custom: true,
label: 'Détection par',
description: 'Comment l\'animal a été détecté',
},
animal: {
values: ['deer', 'bear', 'fox', 'wolf', 'rabbit', 'bird', 'fish', 'insect', 'other'],
default: 'deer',
allow_empty: true,
allow_custom: true,
label: 'Animal',
description: 'L\'animal détecté',
},
}
},
'traffic.mammoth': {
emoji: '🦣',
label: 'Mammouth laineux wohoooo! (évènement de test)',
category: 'Obstacle',
description: 'Un mammouth laineux bloque la route (évènement de test)',
durationHours: 48,
properties: {
test: true,
weight: 1000
}
},
'hazard.piranha': {
emoji: '🐟',
label: 'Piranha dans la piscine (évènement de test)',
category: 'Danger',
description: 'Des pirana attaquent dans cette piscine (évènement de test)',
durationHours: 48
},
// Météo étendue
'weather.storm': {
emoji: '🌪️',
label: 'Tempête',
category: 'Météo',
description: 'Tempête (vent fort)',
durationHours: 48,
properties: {
wind_speed: {label: 'Vent moyen (km/h)', writable: true},
wind_gust: {label: 'Rafales (km/h)', writable: true},
severity: {label: 'Sévérité', writable: true}
}
},
'weather.thunder': {
emoji: '⚡',
label: 'Éclairs / orage',
category: 'Météo',
description: 'Activité orageuse',
durationHours: 12,
properties: {
lightning_count: {label: 'Nombre déclairs', writable: true}
}
}, 'weather.flood': {
emoji: '🌊',
label: 'Inondation',
category: 'Météo',
description: 'Inondation',
durationHours: 24,
properties: {
flood_level: {label: 'Niveau d\'inondation', writable: true}
}
},
'weather.snow': {
emoji: '❄️',
label: 'Neige',
category: 'Météo',
description: 'Neige',
durationHours: 12,
properties: {
snow_level: {label: 'Niveau de neige', writable: true}
}
},
'weather.earthquake': {
emoji: '🌎',
label: 'Tremblement de terre',
category: 'Météo',
description: 'Séisme',
durationHours: 6,
properties: {
magnitude: {label: 'Magnitude (Mw)', writable: true},
depth_km: {label: 'Profondeur (km)', writable: true}
}
},
// catégories pour la randonnée
'traffic.interruption': {
emoji: '⛓️‍💥',
label: 'Interruption d\'itinéraire',
category: 'Randonnée',
description: 'Interruption d\'itinéraire',
durationHours: 200,
properties: {
reason: {label: 'Raison', writable: true},
route: {label: 'Itinéraire', writable: true},
}
},
'traffic.wrong_way': {
emoji: '⛖',
label: 'Mauvais sens de circulation',
category: 'Randonnée',
description: 'Mauvais sens de circulation',
durationHours: 200,
properties: {
reason: {label: 'Raison', writable: true},
route: {label: 'Itinéraire', writable: true},
}
},
'traffic.contestation': {
emoji: '🤯',
label: 'Contestation d\'itinéraire',
category: 'Randonnée',
description: 'Contestation d\'itinéraire',
durationHours: 200,
properties: {
route: {label: 'Itinéraire', writable: true},
}
}
// ici ajouter d'autres catégories d'évènements à suggérer
}
}
}
export default oedb;