MemberContext: Context
Item | Value |
---|---|
Briefly | Brief description missing. |
Authors | |
Definition Path | ImprovingApp.MemberContext |
View Source Link | members.riddl(1:1) |
Members are people, known as users, who use the system. Membership within an organization implies membership in that organization’s parent organization - all the way back to the BaseOrganization. Membership in sibling organizations is not assumed and must be made explicit if that is desired. In order to be assigned as an Admin of an organization you must first be a Member of that organization. Membership in a private organization must be approved by an admin of that organization. Membership in a public organization can be done by the member themselves. Generally, an admin would use Organization.AddMembersToOrganization to add a member(s) to an org. A Member would request membership to an organizaiton by calling Member.JoinOrganization.
Guests are similar to Members in that they use the system to view public events and make purchases. However, Guests are anonymous within the system. That is, there is no personal information retained. Guests may not maintain details like payment methods to ease purchases. If a guest makes two purchases in the system each of those purchases are associated with two distinct guest records - one for each purchase. The individual must enter payment information with each of those purchases. Guests may not be members of an organization as there is no retained entity with which to assign the membership.
Additionally, in a high school setting, the following member types are supported:
- FacultyStaff - Teachers and administrative support employees within the organization
- Student - students at the organization
- Vendor - an entity authorized to sell goods at organization events
- Sponsor - an entity who contributes monitary means or other material assets to the Organization, possibly in exchange for recognition (limited advertising) at organization events
- General - the default member type
- Alumni - A member who at one time was a student or Faculty/Staff member at the organization
- Parent - A member who has legal guardianship over an active student at the organization
- Fan - A member who is no otherwise associated to the organization but wants to support it.
Organizational membership is necessary to view details of private organizations or events that are private to the sponsoring organization. User type may further restrict details that are visible within the organzaiton.
Improving.app, the Organizations the member belongs to, and the user themselves may persist certain information about the member. For example, the member may save personal information, payment methods to ease transactions, and so on. An organization may track a member’s attendance to events and anonymized demographic data, and so on.
Members may act as an Admin for an organization that they belong to within limits. For example, it may be defined that only a Member of type FacultyStaff may be an admin for the BaseOrganization. Maybe it is defined that Vendors, and Sponsors, may not be an Admin for any organization. A member may have several types simultaneously. For example, a Member may be both FacultyStaff and a Parent at the same time. All members by default are General Members.
--- title: Context Map For Context 'MemberContext' init: theme: dark flowchart: defaultRenderer: dagre width: 100% useMaxWidth: true securityLevel: loose --- flowchart TB classDef default fill:#666,stroke:black,stroke-width:3px,color:white; classDef MemberContext_class color:white,stroke-width:3px; classDef MemberGateway_class color:white,stroke-width:3px; subgraph 'Domain 'ImprovingApp'' direction TB MemberContext((Context 'MemberContext')) MemberGateway((Context 'MemberGateway')) MemberContext-->|Uses Type 'MemberInfo' from|MemberGateway((Context 'MemberGateway')) MemberContext-->|Uses Type 'MemberInfo' from|MemberGateway((Context 'MemberGateway')) MemberContext-->|Uses Event 'MemberActivated' from|MemberGateway((Context 'MemberGateway')) end class MemberContext MemberContext_class class MemberGateway MemberGateway_class
- OnMessageClause ‘On command ImprovingApp.GatewayAPI.MemberGateway.RegisterMember’ in Handler ‘MemberHandler’
- OnMessageClause ‘On event ImprovingApp.GatewayAPI.MemberGateway.MemberRegistered’ in Handler ‘MemberHandler’
- ActivateMember: Command
- Activating Member
- Member ID
- EditableInfo: Type
- Avatar
- First Name
- Handle
- Last Name
- Notification Preference
- Organization Membership
- Tenant
- EditMemberInfo: Command
- Editing Member
- Info
- Member ID
- GetMemberData: Query
- Member ID
- GetMembersByMetaInfo: Query
- Query Data
- Info: Type
- Avatar
- Contact
- First Name
- Handle
- Last Name
- Notification Preference
- Organization Membership
- Tenant
- Member: Entity
- DraftMember: Record
- ID
- Info
- Meta
- DraftMemberState: State
- DraftMemberHandler: Handler
- On Command Edit Member Info
- On Command Improving App. Member Context. Activate Member
- On Command Improving App. Member Context. Register Member
- On Query Get Member Data
- DraftMemberHandler: Handler
- MemberHandler: Handler
- On Command Improving App. Gateway Api. Member Gateway. Register Member
- RegisteredMember: Record
- ID
- Info
- Meta
- RegisteredMemberState: State
- First Name
- Last Name
- Time Sanity
- ActiveMemberHandler: Handler
- On Command Edit Member Info
- On Command Improving App. Member Context. Register Member
- On Command Improving App. Member Context. Suspend Member
- On Command Improving App. Member Context. Terminate Member
- On Query Get Member Data
- SuspendedMemberHandler: Handler
- On Command Improving App. Member Context. Activate Member
- On Command Improving App. Member Context. Register Member
- On Command Improving App. Member Context. Suspend Member
- On Command Improving App. Member Context. Terminate Member
- On Query Get Member Data
- TerminatedMember: State
- TerminatedMemberState: Record
- Last Meta
- DraftMember: Record
- MemberActivated: Event
- Member ID
- Meta
- MemberCommand: Type
- MemberData: Result
- Info
- Meta
- MemberEvent: Type
- MemberId: Type
- MemberInfoEdited: Event
- Info
- Member ID
- Meta
- MemberListResult: Result
- Members
- MemberMap: Type
- MemberRegistered: Event
- Info
- Member ID
- Meta
- MemberStates: Type
- Active
- Draft
- Suspended
- MemberSuspended: Event
- Member ID
- Meta
- MemberTerminated: Event
- Member ID
- Meta
- MetaInfo: Type
- Created By
- Created On
- Current State
- Last Modified By
- Last Modified On
- MetaInfoQuery: Type
- Created By
- Created On
- Current State
- Last Modified By
- Last Modified On
- NotificationPreference: Type
- Application
- Sms
- RegisterMember: Command
- Info
- Member ID
- Registering Member
- SuspendMember: Command
- Member ID
- Suspending Member
- TerminateMember: Command
- Member ID
- Terminating Member
- MemberCommandsChannel: Connector
- MemberEventsChannel: Connector
- MemberCommandsSink: Streamlet
- Commands
- MemberCommandsSource: Streamlet
- Commands
- MemberEventsSink: Streamlet
- Events
- MemberEventsSource: Streamlet
- Events