GeographicRepository
Component Detail
Description
Handles all data access operations for mentor geographic records, including coordinates, region assignments, and association affiliations. It abstracts the underlying storage layer and exposes a typed interface for querying mentor locations with filtering and pagination support. It integrates with the encrypted assignment dispatch dependency to ensure location data is accessed only for mentors with valid active assignments.
geographic-repository
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
- Query mentor location records from local database and remote API with filtering by status and region
- Persist and invalidate cached geographic coordinates for offline-capable map rendering
- Resolve region and association metadata linked to each mentor location record
- Enforce data access boundaries by validating mentor active status before returning records
- Provide paginated location queries to support large mentor datasets without memory pressure
Interfaces
getMentorLocations(filter: LocationFilter): Promise<MentorLocation[]>
getMentorLocationById(mentorId: string): Promise<MentorLocation | null>
getRegions(): Promise<Region[]>
cacheLocations(locations: MentorLocation[]): Promise<void>
clearLocationCache(): Promise<void>
Related Data Entities (1)
Data entities managed by this component