ActivityApprovalService
Component Detail
Description
Backend service that orchestrates the approval and rejection workflow for activity submissions. It validates submission state transitions, persists decisions with audit metadata, triggers downstream reporting data updates for approved submissions, and dispatches rejection notifications to originating peer mentors.
activity-approval-service
Sources & reasoning
Line 329 places activity oversight explicitly in the Admin Web Portal MVP scope (Fase 1). Lines 195 and 263 confirm approval workflows and coordinator quality oversight are structural responsibilities of the admin portal. Blueprint marks this [MVP]. Bufdir reporting dependency makes approval gating critical priority - without it, grant compliance data cannot be trusted.
-
docs/source/likeperson.md · line 195Activity oversight, approval workflows, and corrections
-
docs/source/likeperson.md · line 263Coordinator oversees follow-up, quality, and approval
-
docs/source/likeperson.md · line 329Aktivitetsoversikt og grunnleggende statistikk
Responsibilities
- Validate that a submission is in a reviewable state before processing a decision
- Persist approval decisions and update submission status to approved in the database
- Persist rejection decisions with mandatory coordinator-supplied reasoning
- Enqueue approved submissions for inclusion in Bufdir-compatible reporting exports
- Emit rejection notifications to the peer mentor who created the submission
Interfaces
approveActivity(submissionId: string, coordinatorId: string): Promise<ApprovalResult>
rejectActivity(submissionId: string, coordinatorId: string, reason: string): Promise<RejectionResult>
getReviewQueue(filters: ReviewFilters, page: number): Promise<SubmissionPage>
getSubmissionDetail(submissionId: string): Promise<ActivitySubmission>
Related Data Entities (8)
Data entities managed by this component