feat(tickets): filtres multi-critères par cases à cocher (backend + frontend)
Passe les filtres de la liste des tickets en sélection multiple (#12). Backend Rust : - IssueListFilter : statuses/priorities en Vec, filter_matches en OR intra-champ et AND inter-champs - TicketListRequestDto en tableaux + from_request (parse/déduplication) - MCP idea_ticket_list aligné sur le nouveau contrat Frontend : - TicketListQuery.statuses/priorities - UI de cases à cocher, toggle/clear des filtres Tests verts : issue_store (7), app-tauri --lib (59), mcp_server (24), issue_usecases (6), sprint_usecases (6), frontend vitest (505), npm run build (exit 0). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -707,10 +707,16 @@ export interface ConversationGateway {
|
||||
): Promise<TurnPage>;
|
||||
}
|
||||
|
||||
/** Filter/search criteria for {@link TicketGateway.list}. */
|
||||
/**
|
||||
* Filter/search criteria for {@link TicketGateway.list} (ticket #12).
|
||||
*
|
||||
* Status and priority are **multi-select**: `statuses`/`priorities` are sets of
|
||||
* accepted values with OR semantics *within* a facet and AND *across* facets. An
|
||||
* empty or absent array means "no constraint on this facet" (all values pass).
|
||||
*/
|
||||
export interface TicketListQuery {
|
||||
status?: TicketStatus;
|
||||
priority?: TicketPriority;
|
||||
statuses?: TicketStatus[];
|
||||
priorities?: TicketPriority[];
|
||||
assignedAgentId?: string;
|
||||
/** Free-text match over title/description. */
|
||||
text?: string;
|
||||
|
||||
Reference in New Issue
Block a user