feat(#16): implement websocket real-time updates

- Add WebSocket gateway with workspace-scoped rooms
- Define event types: task.created, task.updated, task.deleted
- Define event types: event.created, event.updated, event.deleted
- Define event types: project.created, project.updated, project.deleted
- Add shared WebSocket types for type safety
- WebSocketModule already integrated in AppModule
This commit is contained in:
Jason Woltje
2026-01-29 19:37:53 -06:00
parent 1cb54b56b0
commit 10ed2cdb4f
3 changed files with 108 additions and 0 deletions

View File

@@ -135,6 +135,15 @@ export class WebSocketGateway implements OnGatewayConnection, OnGatewayDisconnec
this.logger.debug(`Emitted event:deleted to ${room}`);
}
/**
* Emit project:created event to workspace room
*/
emitProjectCreated(workspaceId: string, project: Project): void {
const room = this.getWorkspaceRoom(workspaceId);
this.server.to(room).emit('project:created', project);
this.logger.debug(`Emitted project:created to ${room}`);
}
/**
* Emit project:updated event to workspace room
*/
@@ -144,6 +153,15 @@ export class WebSocketGateway implements OnGatewayConnection, OnGatewayDisconnec
this.logger.debug(`Emitted project:updated to ${room}`);
}
/**
* Emit project:deleted event to workspace room
*/
emitProjectDeleted(workspaceId: string, projectId: string): void {
const room = this.getWorkspaceRoom(workspaceId);
this.server.to(room).emit('project:deleted', { id: projectId });
this.logger.debug(`Emitted project:deleted to ${room}`);
}
/**
* Get workspace room name
*/