135dika

Joined 8 months ago

Last active 2 months ago
0 0 1

API — Action Plans

Action plan module: Activity → Task → Subtask hierarchy with progress entries, approvers, prerequisites, members, and a BOD (Board of Directors) escalation flow.

General

  • Base: /api/v1/projects/:projectId/action-plans — all paths below are relative to this base.
  • Auth: JWT, @Authorize({ membership: true }) — caller must be a project member.
  • Envelope: responses wrapped { status, message, data }; binary endpoints (PDF/XLSX) bypass the envelope.
  • Access tiers (ProjectActionPlanAccessGuard):
Last active 4 months ago
0 0 1
1 /**
2 * DeleteAnnotationsByUser — soft-delete all annotation layers + annotations
3 * created by a specific user within the given rooms.
4 * Used when canceling/switching a user's assignment on a transmittal.
5 * Caller should resolve room IDs via getRoomByDocument first.
6 */
7 async deleteAnnotationsByUser(request: DeleteAnnotationsByUserRequest): Promise<DeleteAnnotationsByUserResponse> {
8 const roomIds = request.roomIds ?? [];
9 if (roomIds.length === 0) {
10 return { deletedAnnotations: 0, deletedLayers: 0 };