Angular app for member self-service and cooperative administration.
Member: Authenticated cooperative account with subscription, admin, and newsletter state. Avoid: Profile, user account
Doula Profile: Public directory content describing a doula's services and contact details. Avoid: Member profile when referring to the member account
Legacy Membership: Imported old-system membership record awaiting admin review or linking. Avoid: Unclaimed profile
Unclaimed Legacy Membership: A Legacy Membership not yet linked to a Member. Avoid: Unclaimed profile, unlinked profile
Unlinked Doula Profile: Existing Doula Profile content with no owning Member. Avoid: Unclaimed profile
Active Membership: A Member currently in good standing. Avoid: Profile approval, approved member
Profile Approval: Admin permission for a Member to create or edit a Doula Profile. Avoid: Active membership, approved member
Draft Profile: A Doula Profile hidden from public directory pages while retained for admin or owner use. Avoid: Unclaimed profile, deleted profile, inactive profile
Contact Message: General inbound message from the public contact form. Avoid: Match request, lead
Match Request: Public request for help finding a doula. Avoid: Contact message, lead
Pending Intake Item: A Contact Message or Match Request not yet handled by an admin. Avoid: Unsent item
Processed Intake Item: A Contact Message or Match Request marked handled by an admin. Avoid: Sent item
Cancel Membership: Stop or deactivate a Member's Active Membership without implying money is returned. Avoid: Refund
Membership Refund: Payment reversal workflow that deactivates membership and cascades to profile/newsletter cleanup. Avoid: Cancel membership
Newsletter Subscription: A secondary Member preference stored in account state and historically synced to a mailing list. Avoid: Active newsletter program
Admin: A signed-in person with the admin claim who can operate cooperative management screens. Avoid: Webmaster, superuser
- A Member may have zero or one Doula Profile.
- An Admin may manage Members, Doula Profiles, Contact Messages, Match Requests, and Legacy Memberships.
- A Doula Profile belongs to zero or one Member until linked.
- A Legacy Membership may reference zero or one Unlinked Doula Profile by slug.
- Linking an Unlinked Doula Profile to a Member may resolve the matching Unclaimed Legacy Membership.
- Active Membership and Profile Approval are separate states.
- Deleting an Unclaimed Legacy Membership may turn its referenced Doula Profile into a Draft Profile without deleting profile content.
- A Contact Message or Match Request starts as a Pending Intake Item and can become a Processed Intake Item.
Dev: "Can a Member renew without changing their Doula Profile?" Domain expert: "Yes — membership status and public profile content are separate." Dev: "Is this legacy row an Unlinked Doula Profile?" Domain expert: "No — the row is an Unclaimed Legacy Membership. Its slug may point to an Unlinked Doula Profile."
- "profile" must not mean both Member account state and Doula Profile content.
- "unclaimed profile" mixed imported membership records with unowned profile content; resolved: use Unclaimed Legacy Membership for import records and Unlinked Doula Profile for profile content without an owner.