bulk operations fixes

- Frontend: implémente bulkDelete, bulkArchive, bulkRestore
- Backend: adapts ticket DTOs pour bulk operations
- Infrastructure: MCP server pour gestion bulk tickets
- Tests: coverage frontend + backend
This commit is contained in:
2026-07-28 20:38:07 +02:00
parent 73c6081ab8
commit bd4f76ae74
19 changed files with 597 additions and 35 deletions

View File

@ -29,6 +29,7 @@ import type {
Sprint,
TerminalSession,
Ticket,
TicketBulkResult,
TicketCarnet,
TicketChat,
TicketLinkKind,
@ -297,6 +298,21 @@ export class HttpTicketGateway implements TicketGateway {
async delete(projectId: string, ref: string): Promise<void> {
await this.http.invoke<void>("ticket_delete", { request: { projectId, ref } });
}
bulkUpdateStatus(projectId: string, refs: string[], status: Ticket["status"]): Promise<TicketBulkResult> {
return this.http.invoke<TicketBulkResult>("ticket_bulk_update_status", {
request: { projectId, refs, status },
});
}
bulkUpdatePriority(projectId: string, refs: string[], priority: Ticket["priority"]): Promise<TicketBulkResult> {
return this.http.invoke<TicketBulkResult>("ticket_bulk_update_priority", {
request: { projectId, refs, priority },
});
}
bulkDelete(projectId: string, refs: string[]): Promise<TicketBulkResult> {
return this.http.invoke<TicketBulkResult>("ticket_bulk_delete", {
request: { projectId, refs },
});
}
readCarnet(projectId: string, ref: string): Promise<TicketCarnet> {
return this.http.invoke<TicketCarnet>("ticket_read_carnet", { request: { projectId, ref } });
}