feat(sprints): interface de création et gestion des sprints (frontend)

Ticket #11 — surface UI de gestion des sprints (frontend pur).

- Nouveau composant SprintManager : création (nom optionnel), édition et
  gestion du cycle de vie d'un sprint, contrôles accessibles (pas de DnD).
- useTickets étendu aux opérations de gestion de sprint ; ports, adaptateurs
  (ticket.ts, mock/index.ts) et TicketsPanel câblés en conséquence.
- Tests Vitest associés (tickets.test.tsx).

Typecheck / vitest (497+ tests) / build verts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 21:11:37 +02:00
parent edd5486330
commit fa874b976e
8 changed files with 715 additions and 0 deletions

View File

@ -807,6 +807,28 @@ export interface TicketGateway {
sprintId: string | null,
expectedVersion: number,
): Promise<Ticket>;
/** Creates a sprint (name required by the backend) and returns it (#11). */
createSprint(projectId: string, name: string): Promise<Sprint>;
/**
* Renames a sprint. Optimistic concurrency: `expectedVersion` must match the
* sprint's current version (#11).
*/
renameSprint(
projectId: string,
sprintId: string,
name: string,
expectedVersion: number,
): Promise<Sprint>;
/**
* Reorders sprints to the given full list of ids (execution order). Returns
* the reordered sprint list (#11).
*/
reorderSprints(projectId: string, orderedIds: string[]): Promise<Sprint[]>;
/**
* Deletes a sprint. The backend unassigns its tickets (it does NOT delete
* them); they fall back to the "no sprint" bucket (#11).
*/
deleteSprint(projectId: string, sprintId: string): Promise<void>;
}
/**