Service Layer high complexity backend
0
Dependencies
0
Dependents
18
Entities
0
Integrations

Description

Core business logic service that enforces role-based data scoping for all coordinator report queries. Maps the authenticated user's role and organizational memberships to the correct data scope (local association, region, or national), builds aggregation queries, and delegates heavy computation to Supabase RPCs or edge functions to avoid N+1 patterns.

Feature: Coordinator Reports & Dashboards

coordinator-report-service

Responsibilities

  • Enforce role-based data scoping by mapping user role to organizational scope
  • Build and execute aggregation queries via Supabase RPC or edge functions
  • Apply filter parameters (area, date range, activity type, peer mentor status) to scoped queries
  • Generate CSV export payloads with coordinator-aligned column headers

Interfaces

getAggregatedStats(scopeKey: string, filters: FilterSet): Promise<DashboardStats>
getScopedPeerMentorList(userId: string): Promise<PeerMentor[]>
resolveUserScope(userId: string): Promise<OrgScope>
exportReportCSV(scopeKey: string, filters: FilterSet): Promise<Blob>
getActivityBreakdown(scopeKey: string, filters: FilterSet): Promise<ActivityBreakdown>
getPeerMentorActivitySummary(mentorId: string, filters: FilterSet): Promise<MentorSummary>
getRegionalComparison(regionId: string): Promise<RegionalStats>