Add frontend/modules/loyalty with types, API client, design system, feature pages and thin App Router routes under app/loyalty/. BFF proxy at app/api/loyalty/. Include loyalty frontend docs. Co-authored-by: Cursor <cursoragent@cursor.com>
9.3 KiB
Beauty Business Roadmap
Future only. Completed work → progress.md. Immediate milestone → next-steps.md.
Commercial product: Torbat Beauty — independent business management software for salons, barbershops, beauty clinics, laser centers, skin-care centers, hair-treatment centers, and spa & wellness centers.
Important: Beauty Business and Healthcare are completely independent business modules. They share Core platform services (Tenant, Identity, Authorization, CRM, Accounting, Loyalty, Communication, Delivery, Experience/Page Builder) via API and events only — never shared documentation, phases, frontend, dashboards, permissions, navigation, or branding.
Business Goals
- Enable beauty and wellness businesses to operate appointments, staff, services, and customer relationships in a single tenant-scoped workspace.
- Provide industry-specific booking, salon/branch management, service catalog, packages, commissions, and marketing workflows without owning platform capabilities.
- Integrate with Torbat Loyalty, Communication, Accounting, CRM, Delivery, and Experience without duplicating their domain data.
- Ship a dedicated frontend shell, permission tree (
beauty_business.*), navigation, and branding separate from Healthcare and other verticals.
Boundaries
Owns
- Salons / branches / treatment rooms / stations
- Beauty service catalog (services, categories, durations, pricing shells)
- Appointment and booking lifecycle (beauty-specific rules)
- Staff profiles, schedules, skills, commission rules (beauty domain)
- Customer profiles in beauty context (refs to CRM/Loyalty where applicable)
- Packages, memberships, and session bundles (beauty commercial model)
- Beauty marketing campaigns hooks (Loyalty/Communication client-side)
beauty_business.*permissions, events, audit, configuration
Must Not Own
- Healthcare clinics, doctors, patients, medical records, prescriptions (healthcare)
- Accounting journals / Posting Engine (accounting)
- Sales CRM aggregates (crm)
- Loyalty ledger, point accounts, campaigns (loyalty)
- Communication providers and message delivery (communication)
- Delivery drivers, fleet, dispatch (delivery)
- Experience sites, pages, themes (experience)
- Core tenant membership, Identity user admin (core-platform)
See module-boundaries.md.
Dependencies
| Dependency | Usage |
|---|---|
| Core Platform | Tenant, entitlement, membership context |
| Identity & Access | User refs for staff and customer portal |
| Authorization | Workspace roles + module permission catalog |
| CRM | Contact/organization refs; optional lead capture |
| Accounting | Revenue/settlement intents via Posting Engine contracts |
| Loyalty | Points, memberships, campaigns (client) |
| Communication | Appointment reminders, marketing messages (client) |
| Delivery | Product/home-service delivery intents (optional, later) |
| Experience (Torbat Pages) | Public booking pages, salon sites, widgets |
| File Storage | Media refs for portfolio, staff, service images |
Database-per-service: sole owner of beauty_business_db. No cross-DB FKs (ADR-001).
Roles (High-Level)
| Role | Responsibility |
|---|---|
| Salon Owner | Tenant beauty business admin; branches, billing settings, staff policies |
| Branch Manager | Day-to-day branch operations, schedules, inventory of stations |
| Receptionist | Booking, check-in, customer intake |
| Stylist / Therapist / Technician | Own calendar, service delivery, commission view |
| Sales / Front Desk | Packages, upsell, payment collection (refs Accounting) |
| Customer | Self-service booking, history, loyalty (portal APIs; UI in frontend) |
| Platform Admin | Cross-tenant ops (platform scope only) |
Module-specific permissions under beauty_business.* (detailed per phase).
High-Level Entities (Planned)
| Aggregate | Purpose |
|---|---|
| BeautyOrganization | Top-level beauty business entity (salon group / clinic chain) |
| BeautyBranch | Physical location (salon, barbershop, clinic branch, spa) |
| TreatmentRoom / Station | Bookable physical resources |
| BeautyRole / BeautyPermission | Module RBAC shells |
| ServiceCategory / BeautyService | Catalog: cuts, color, laser, facial, spa packages |
| ServiceVariant | Duration, price tier, staff skill requirements |
| StaffProfile | Beauty staff linked to Identity user ref |
| StaffSchedule / StaffAvailability | Working hours and exceptions |
| CustomerProfile | Beauty customer context (CRM contact ref) |
| Appointment | Booking lifecycle (requested → confirmed → checked-in → completed / cancelled / no-show) |
| AppointmentType | Consultation, service, package session, follow-up |
| WaitingListEntry | Queue when slots full |
| PackageDefinition / CustomerPackage | Prepaid multi-session bundles |
| MembershipPlan / CustomerMembership | Recurring beauty memberships |
| CommissionRule / CommissionEntry | Staff compensation shells |
| MarketingCampaignRef | Hooks to Loyalty/Communication (refs only) |
| BeautyConfiguration / BeautySetting | Tenant/module settings |
| BeautyAuditLog | Immutable audit trail |
| OutboxEvent | Publish-only domain events |
Exact entity names and tables are defined at implementation time per phase-template.md.
Integration Points
| Platform | Integration pattern |
|---|---|
| CRM | contact_ref / organization_ref on CustomerProfile; optional opportunity on high-value packages |
| Loyalty | Earn/redeem on completed appointments; membership tier sync via API |
| Communication | Template-based reminders (confirm, reschedule, no-show, birthday) |
| Accounting | Invoice/payment intents on completed services; commission accrual intents |
| Experience | Embeddable booking widget; public service menu pages |
| Delivery | Optional product shipment for retail beauty products (job intents to Delivery) |
| Identity | Staff and customer user refs only |
All integrations: REST + async events + outbox; provider contracts in owning service; no foreign model imports.
Phase Plan
| Phase | Identifier | Title | Summary |
|---|---|---|---|
| 14.0 | beauty-business-14-0 |
Beauty Foundation | Service scaffold, org/branch/roles, configuration, audit, health/capabilities |
| 14.1 | beauty-business-14-1 |
Booking Engine | Schedules, availability, appointments, waiting list |
| 14.2 | beauty-business-14-2 |
Salon Management | Branches, rooms/stations, branch policies, operational settings |
| 14.3 | beauty-business-14-3 |
Service Catalog | Categories, services, variants, pricing shells, media refs |
| 14.4 | beauty-business-14-4 |
Customer Management | Customer profiles, preferences, visit history shells, CRM refs |
| 14.5 | beauty-business-14-5 |
Package & Membership | Prepaid packages, session balances, recurring memberships |
| 14.6 | beauty-business-14-6 |
Staff & Commission | Staff profiles, skills, schedules, commission rules and entries |
| 14.7 | beauty-business-14-7 |
Marketing & Loyalty | Campaign refs, referral hooks, Loyalty/Communication connectors |
Phase documents: phases/BeautyBusiness/.
Implementation of every phase must follow the Enterprise / AI Development Framework (ADR-013, ADR-018, ADR-019).
Future Roadmap (Post 14.7)
Not registered as phases yet; track here only:
- Retail product inventory and POS-lite for beauty retail
- Advanced analytics and revenue dashboards
- Multi-branch franchise reporting
- AI-assisted scheduling and demand forecasting
- Mobile stylist app and customer app deep links
- Integration marketplace (payment gateways, review platforms)
- Enterprise validation and compliance slice (14.8+ when scoped)
Technical Registration (Planned)
| Field | Value |
|---|---|
| Service folder | backend/services/beauty_business (at 14.0) |
| Database | beauty_business_db |
| API port | 8011 (reserved) |
| API prefix | /api/v1 |
| Permission prefix | beauty_business.* |
| Event prefix | beauty_business.* |
| Frontend route prefix | /beauty (dedicated shell; separate from /healthcare) |
Documentation References
- Phase area README
- Module registry — beauty_business
- Module boundaries
- Multi-tenant architecture
- Service architecture
- AI Development Framework
- Healthcare roadmap (sibling module — do not merge)