Data Layer medium complexity backend
0
Dependencies
0
Dependents
4
Entities
0
Integrations

Description

Data access layer responsible for querying, filtering, and persisting activity submission review records. It provides filtered queue retrieval, status transition writes, and audit trail storage for all coordinator decisions against peer mentor submissions.

Feature: Activity Review & Approval

activity-oversight-repository

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 195
    Activity oversight, approval workflows, and corrections
  • docs/source/likeperson.md · line 263
    Coordinator oversees follow-up, quality, and approval
  • docs/source/likeperson.md · line 329
    Aktivitetsoversikt og grunnleggende statistikk

Responsibilities

  • Query pending activity submissions with support for filtering by status, date range, peer mentor, and activity type
  • Write approval and rejection status transitions with coordinator ID and timestamp
  • Store rejection reasoning text alongside rejection records for audit purposes
  • Retrieve full submission detail records including linked peer mentor and activity type data
  • Support paginated result sets for large submission queues

Interfaces

findPendingSubmissions(filters: ReviewFilters, page: number, pageSize: number): Promise<SubmissionPage>
findById(submissionId: string): Promise<ActivitySubmission | null>
saveApproval(submissionId: string, coordinatorId: string, approvedAt: Date): Promise<void>
saveRejection(submissionId: string, coordinatorId: string, reason: string, rejectedAt: Date): Promise<void>