wip: snapshot V2 cascade onglet 2 (sauvegarde avant chirurgie git-hygiene)
This commit is contained in:
91
types/structure-v2.ts
Normal file
91
types/structure-v2.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
/**
|
||||
* Types V2 - Carte des réseaux de bifurcation
|
||||
* Source : public/data/reseaux-bifurcation.json
|
||||
*/
|
||||
|
||||
export interface StructureV2 {
|
||||
id: string
|
||||
nom: string
|
||||
url: string
|
||||
pays: string
|
||||
ville: string
|
||||
famille_principale: 1 | 2 | 3 | 4 | 5
|
||||
familles_secondaires?: number[]
|
||||
hashtags: string[]
|
||||
type_principal: string
|
||||
badges: {
|
||||
centre_ressources: boolean
|
||||
mouvement_manifeste: boolean
|
||||
contre_pouvoir_spatial: boolean
|
||||
f6_recherche_politique: boolean
|
||||
}
|
||||
description_courte: string
|
||||
description_longue: string
|
||||
pensees: { id: string; label: string; confiance: string }[]
|
||||
sources: { type: string; titre: string; url: string }[]
|
||||
already_in_v1: boolean
|
||||
eligible_v2: boolean
|
||||
// Geocoords (ajoutés par géocodage - peut être null)
|
||||
latitude?: number | null
|
||||
longitude?: number | null
|
||||
}
|
||||
|
||||
export interface ReseauxBifurcationData {
|
||||
version: string
|
||||
meta: {
|
||||
total_structures: number
|
||||
total_projets_emblematiques: number
|
||||
total_edges_graphe: number
|
||||
familles: { id: number; label: string; color: string }[]
|
||||
hashtags_officiels: string[]
|
||||
}
|
||||
structures: StructureV2[]
|
||||
projets: ProjetEmblematique[]
|
||||
graphe: { edges: GrapheEdge[] }
|
||||
}
|
||||
|
||||
export interface ProjetEmblematique {
|
||||
id: string
|
||||
nom: string
|
||||
structure_parent: string
|
||||
annee?: number
|
||||
lieu?: string
|
||||
geocoords?: { lat: number; lng: number } | null
|
||||
description: string
|
||||
url?: string | null
|
||||
tags: string[]
|
||||
}
|
||||
|
||||
export interface GrapheEdge {
|
||||
source: string
|
||||
target: string
|
||||
types: string[]
|
||||
score: number
|
||||
evidence: string
|
||||
}
|
||||
|
||||
// Mapping StructureV2 vers le format attendu par NavMap (interface Org)
|
||||
// NavMap attend { Id, latitude, longitude, nom, ... }
|
||||
export function structureToMapOrg(s: StructureV2, index: number): {
|
||||
Id: number
|
||||
nom: string
|
||||
latitude?: number | null
|
||||
longitude?: number | null
|
||||
prioritaire?: boolean
|
||||
famille_principale?: number
|
||||
hashtags?: string[]
|
||||
type_principal?: string
|
||||
description_courte?: string
|
||||
} {
|
||||
return {
|
||||
Id: index,
|
||||
nom: s.nom,
|
||||
latitude: s.latitude,
|
||||
longitude: s.longitude,
|
||||
prioritaire: s.badges?.centre_ressources || s.badges?.mouvement_manifeste || s.badges?.contre_pouvoir_spatial,
|
||||
famille_principale: s.famille_principale,
|
||||
hashtags: s.hashtags,
|
||||
type_principal: s.type_principal,
|
||||
description_courte: s.description_courte,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user