Membership Service
Component Detail
Service Layer
medium complexity
backendmobile
2
Dependencies
1
Dependents
5
Entities
0
Integrations
Description
Core business logic service responsible for managing a user's multi-association membership lifecycle. Handles fetching all associations for a user, enforcing the maximum-five-affiliations rule, validating membership before write operations, and ensuring activities and reports are attributed to the correct association context.
membership-service
Responsibilities
- Fetch and cache the full list of associations a user belongs to
- Enforce the maximum five-association limit per user
- Validate that a requested association_id is in the user's membership list before accepting write operations
- Return the correct coordinator relationships for the active association context
- Provide membership state to BLoC consumers
Interfaces
getUserMemberships(userId: String): Future<List<UserAssociation>>
getActiveMembership(userId: String): Future<UserAssociation>
setActiveMembership(userId: String, associationId: String): Future<void>
validateMembershipAccess(userId: String, associationId: String): Future<bool>
getMembershipCount(userId: String): Future<int>
getCoordinatorsForContext(userId: String, associationId: String): Future<List<User>>
addMembership(userId: String, associationId: String, role: String): Future<void>
removeMembership(userId: String, associationId: String): Future<void>
Relationships
Dependencies (2)
Components this component depends on
Related Data Entities (5)
Data entities managed by this component