A person saves named views of «my work»: projects, assigned to me, that I follow, status categories, priorities, bugs only, overdue and text. They are private (Mongo my_views, no history), listed and deleted by their owner (GraphQL myViews / saveMyView / deleteMyView, REST /api/me/views), and run as the cross-project search, which gains project, priority, bugsOnly and overdue filters (also in MCP my_issues). The home page shows them as a bar above «my work», with a drawer to save a new one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 enon<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_IDpara 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) yvalidateProjectSettings(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.