Annual Summary Service
Component Detail
Service Layer
medium complexity
backend
1
Dependencies
1
Dependents
3
Entities
0
Integrations
Description
Server-side aggregation service that computes a peer mentor's annual impact metrics for a trailing 12-month window. Queries activities, events, contacts, and badges tables, assembles the summary payload, persists it to annual_summaries, and serves it to the mobile client via REST.
annual-summary-service
Responsibilities
- Aggregate activity count, total hours, and unique contacts for trailing 12 months
- Count event participations and milestone/badge achievements in period
- Persist computed summary to annual_summaries (one row per user per year)
- Serve pre-computed payload to Flutter client on demand
- Support year-over-year comparison by retrieving prior-year record
Interfaces
generateAnnualSummary(userId: string, year: number) → Promise<AnnualSummaryPayload>
getAnnualSummary(userId: string, year: number) → Promise<AnnualSummaryPayload | null>
listAnnualSummaries(userId: string) → Promise<AnnualSummaryPayload[]>
aggregateActivityMetrics(userId: string, from: Date, to: Date) → Promise<ActivityMetrics>
Relationships
Related Data Entities (3)
Data entities managed by this component