- Bulk editing gets «Release…» (open releases or none), and the list view a release filter, also reachable from each release («Ver en la lista», ?release=). - Archiving a release asks where its unfinished tickets go, as closing a sprint does: ReleaseArchivedEvent carries `moveTo` (an open release of the same project, or none) and the saga moves them there; finished ones stay. In GraphQL, REST and the MCP's archive_release. - Chapter 10 lists the next features and the ideas to weigh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
564 B
TypeScript
20 lines
564 B
TypeScript
import { AutowiredEvent } from '@task-stream/api/shared/domain';
|
|
import { TrackerEvent } from './tracker.event';
|
|
|
|
/**
|
|
* The release was archived. Its unfinished tickets move to `moveTo` (an
|
|
* open release of the same project) or, when null, leave it. Events stored
|
|
* before `moveTo` existed read as null.
|
|
*/
|
|
@AutowiredEvent
|
|
export class ReleaseArchivedEvent extends TrackerEvent {
|
|
constructor(
|
|
actorId: string,
|
|
releaseId: string,
|
|
projectId: string,
|
|
readonly moveTo: string | null = null,
|
|
) {
|
|
super(actorId, releaseId, projectId);
|
|
}
|
|
}
|