Files
task-stream/libs/api/tracker/domain
Josep Piguillem 45a3dc1e16 feat: a roadmap of epics over time
Tickets get a start date next to their due date, both editable on the
ticket page. The Hoja de ruta tab lays the epics out over the months as
bars filled with their progress, with sprints and releases as landmarks
and a line for today.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:14:32 +02:00
..
2026-10-08 15:14:32 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00

api-tracker-domain

El modelo del producto: proyectos, tickets, comentarios y releases.

  • Import: @task-stream/api/tracker/domain
  • Capa: domain · Tags: scope:api-tracker, type:domain

Contenido

  • Agregados event-sourced: Project, Issue, Comment, Release. Validan en sus métodos y cambian de estado en on<Evento>.
  • events/: un fichero por evento (IssueCreatedEvent, IssueStatusChangedEvent…), todos con @AutowiredEvent.
  • Proyectos públicos (Project.isPublic) y borrado: Project.delete (propietario, confirmando la clave), Issue.delete, Release.delete (los usa la cascada); SYSTEM_ACTOR_ID para cambios que no hace una persona.
  • factories/: ProjectFactory, IssueFactory, CommentFactory, ReleaseFactory (@Injectable()).
  • project/project-settings.ts: configuración por proyecto (estados con categoría, transiciones, tipos, áreas), sus valores por defecto, ProjectWorkflow (lo que consultan tickets y queries) y validateProjectSettings (archivar, nunca borrar).
  • read-models/: forma de las vistas de lectura (ProjectReadModel, IssueReadModel…), incluida la línea temporal de los tickets y las estadísticas (analytics.read-model.ts).

Reglas y workflow: API.

Comandos

npx nx lint api-tracker-domain
npx nx test api-tracker-domain    # Jest

Reglas de dependencia entre capas: Arquitectura.