@@ -14,7 +14,7 @@ export interface MinimaEntry {
1414
1515const toMin = ( m : number , s : number ) => m + s / 60 ;
1616
17- // Table de base — saison 2025/26 (configurable ultérieurement)
17+ // Saison 2025/26
1818const MINIMAS_2025_26 : MinimaEntry [ ] = [
1919 // Espoirs / Seniors
2020 { seasonId : '2025/26' , sexe : 'H' , categorie : 'ES' , vkMinMinPerKm : toMin ( 4 , 10 ) } ,
@@ -52,7 +52,47 @@ const MINIMAS_2025_26: MinimaEntry[] = [
5252 { seasonId : '2025/26' , sexe : 'F' , categorie : 'M10' }
5353] ;
5454
55- const TABLE : MinimaEntry [ ] = [ ...MINIMAS_2025_26 ] ;
55+ // Saison 2026/27 — source officielle : https://www.athle.fr/contenu/minima-trail/6271
56+ const MINIMAS_2026_27 : MinimaEntry [ ] = [
57+ // Espoirs / Seniors
58+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'ES' , vkMinMinPerKm : toMin ( 4 , 10 ) } ,
59+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'SE' , vkMinMinPerKm : toMin ( 4 , 10 ) } ,
60+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'ES' , vkMinMinPerKm : toMin ( 5 , 20 ) } ,
61+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'SE' , vkMinMinPerKm : toMin ( 5 , 20 ) } ,
62+
63+ // M0
64+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M0' , vkMinMinPerKm : toMin ( 4 , 30 ) } ,
65+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M0' , vkMinMinPerKm : toMin ( 5 , 40 ) } ,
66+ // M1
67+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M1' , vkMinMinPerKm : toMin ( 4 , 50 ) } ,
68+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M1' , vkMinMinPerKm : toMin ( 5 , 50 ) } ,
69+ // M2
70+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M2' , vkMinMinPerKm : toMin ( 5 , 0 ) } ,
71+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M2' , vkMinMinPerKm : toMin ( 6 , 0 ) } ,
72+ // M3
73+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M3' , vkMinMinPerKm : toMin ( 5 , 20 ) } ,
74+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M3' , vkMinMinPerKm : toMin ( 6 , 10 ) } ,
75+ // M4
76+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M4' , vkMinMinPerKm : toMin ( 5 , 40 ) } ,
77+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M4' , vkMinMinPerKm : toMin ( 6 , 20 ) } ,
78+ // M5 à M10 — pas de minima: champs absent -> null à la lecture
79+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M5' } ,
80+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M5' } ,
81+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M6' } ,
82+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M6' } ,
83+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M7' } ,
84+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M7' } ,
85+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M8' } ,
86+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M8' } ,
87+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M9' } ,
88+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M9' } ,
89+ { seasonId : '2026/27' , sexe : 'H' , categorie : 'M10' } ,
90+ { seasonId : '2026/27' , sexe : 'F' , categorie : 'M10' }
91+ ] ;
92+
93+ export const CURRENT_SEASON = '2026/27' ;
94+
95+ const TABLE : MinimaEntry [ ] = [ ...MINIMAS_2025_26 , ...MINIMAS_2026_27 ] ;
5696
5797export function getMinimaVK (
5898 seasonId : string ,
0 commit comments