Front : heure de passage des artistes (config + mock du solveur)

- ArtistRead/Create/Update gagnent start_time/end_time.
- Onglet Programmation : chaque artiste a désormais deux champs heure
  (début/fin de passage), éditables comme le nom.
- Mock du solveur : porte le même malus de conflit d'artiste que le
  back-end (un créneau qui chevauche un passage souhaité est pénalisé),
  pour un comportement de démo cohérent.
- Jeu de démo : 2 artistes par jour avec des horaires distincts
  (18h-19h / 20h30-22h) au lieu d'un horaire par défaut implicite.

typecheck / lint / build / smoke au vert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
This commit is contained in:
AdamThomas
2026-09-11 18:14:07 +02:00
co-authored by Claude Sonnet 5
parent fea9d37019
commit 304b3c1d9e
5 changed files with 102 additions and 8 deletions
+7 -1
View File
@@ -179,13 +179,19 @@ export function buildMockState(): MockState {
}
}
// Programmation : 2 artistes par jour de l'édition.
// Programmation : 2 artistes par jour de l'édition, à des horaires distincts.
const ARTIST_SLOTS: Array<[string, string]> = [
['18:00:00', '19:00:00'],
['20:30:00', '22:00:00'],
];
const artists: ArtistRead[] = DAY_DATES.flatMap((dateStr, d) =>
[0, 1].map((k) => ({
id: `art${d * 2 + k}`,
edition_id,
name: ARTIST_POOL[(d * 2 + k) % ARTIST_POOL.length],
performance_date: dateStr,
start_time: ARTIST_SLOTS[k][0],
end_time: ARTIST_SLOTS[k][1],
created_at: NOW,
updated_at: NOW,
})),