Coordinator Stats Repository
Component Detail
Data Layer
high complexity
backend
0
Dependencies
0
Dependents
23
Entities
0
Integrations
Description
Data access layer that executes aggregation queries against the Supabase database and manages a per-scope-key result cache with invalidation on new activity records. Caching reduces repeated heavy aggregation queries for coordinators with large peer mentor pools.
coordinator-stats-repository
Responsibilities
- Execute scoped aggregation queries for activity counts, peer mentor status, and area breakdowns
- Maintain a per-scope-key result cache with TTL and activity-record invalidation
- Fetch peer mentor lists scoped to a coordinator's organizational assignment
- Support paginated query results for large organizational scopes
Interfaces
getStatsForScope(scopeKey: string, filters: FilterSet): Promise<DashboardStats>
invalidateCacheForScope(scopeKey: string)
getPeerMentorsInScope(scopeKey: string): Promise<PeerMentor[]>
getActivityCountByType(scopeKey: string, filters: FilterSet): Promise<ActivityTypeCount[]>
getInactiveMentors(scopeKey: string, inactiveDays: number): Promise<PeerMentor[]>
getAreaBreakdown(scopeKey: string): Promise<AreaStat[]>
getRawExportData(scopeKey: string, filters: FilterSet): Promise<ExportRow[]>
Related Data Entities (23)
Data entities managed by this component
Activity
22 fields
core
Activity Log
12 fields
audit
Activity Type
14 fields
configuration
Assignment
21 fields
core
Assignment Dispatch
11 fields
audit
Assignment Honorarium Record
18 fields
core
Bulk Registration
16 fields
core
Delegation Grant
8 fields
audit
Driver Honorarium
19 fields
core
Event
20 fields
core
Event Participant
11 fields
core
Local Association
13 fields
core
Member Recruitment
15 fields
core
National Association
12 fields
core
Organization
14 fields
core
Peer Mentor
15 fields
core
Region
10 fields
core
Report Period
14 fields
configuration
Travel Expense Report
17 fields
core
User
17 fields
core
User Organization Membership
13 fields
core
User Role
15 fields
core
Workshop Session
18 fields
core