oedb-backend/frontend/src/oedb-types.ts

242 lines
7 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 / 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'
},
// 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 }
}
},
'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.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;