MapService
Component Detail
Service Layer
medium complexity
mobile
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Orchestrates the retrieval and transformation of peer mentor geographic data for map rendering. It fetches mentor location records from the repository, applies business rules such as filtering by active status, and prepares structured map annotation objects for the UI layer. It also computes coverage metrics used to highlight underserved regions.
map-service
Sources & reasoning
Line 99 explicitly names geographic map view as a unique Blindeforbundet need for peer mentor matching and assignment dispatch across large counties. Line 358 places it in Fase 3 (third phase), which normalizes to v1.1. The blueprint confirms area [v1.1]. Feature is scoped exactly as defined in the blueprint.
-
docs/source/likeperson.md · line 99Geografisk kartvisning av likepersoner for matching og oppdragstildeling (særlig store fylker).
-
docs/source/likeperson.md · line 358Geografisk kartvisning (Blindeforbundet)
Responsibilities
- Fetch active mentor location records and transform them into map annotation models
- Filter mentors by active status and association membership before exposing to UI
- Compute regional coverage density scores and identify gap zones
- Cache location data with a configurable TTL to reduce redundant network calls
- Provide event notifications when mentor availability changes affect coverage
Interfaces
getActiveMentorAnnotations(): Promise<MentorAnnotation[]>
getCoverageReport(): Promise<CoverageReport>
getMentorsByRegion(regionId: string): Promise<MentorAnnotation[]>
invalidateCache(): void
subscribeToCoverageChanges(callback: (report: CoverageReport) => void): Unsubscribe
Related Data Entities (2)
Data entities managed by this component