# 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`. - `events/`: un fichero por evento (`IssueCreatedEvent`, `IssueStatusChangedEvent`…), todos con `@AutowiredEvent`. - `factories/`: `ProjectFactory`, `IssueFactory`, `CommentFactory`, `ReleaseFactory` (`@Injectable()`). - `issue/issue-workflow.ts`: transiciones de estado permitidas y estados que exigen motivo. - `read-models/`: forma de las vistas de lectura (`ProjectReadModel`, `IssueReadModel`…). Reglas y workflow: [API](../../../../docs/03-api.md#31-modelo-de-dominio-contexto-tracker). ## Comandos ```sh npx nx lint api-tracker-domain npx nx test api-tracker-domain # Jest ``` Reglas de dependencia entre capas: [Arquitectura](../../../../docs/02-arquitectura.md#21-capas-hexagonales).