TorbatYar/docs/service-snapshots/beauty-business.yaml
Mortezakoohjani d579d0b142 feat(loyalty): add Loyalty Platform Frontend module
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>
2026-07-27 10:50:55 +03:30

116 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Beauty Business service snapshot — Phases 14.014.7 complete.
# Spec: docs/ai-framework/service-snapshot-policy.md
schema_version: 1
snapshot_version: 1
service_name: beauty_business
commercial_product: Torbat Beauty
current_version: "0.14.7.0"
current_phase: beauty-business-14-7
last_completed_phase: beauty-business-14-7
next_phase: null
completed_phases:
- beauty-business-14-0
- beauty-business-14-1
- beauty-business-14-2
- beauty-business-14-3
- beauty-business-14-4
- beauty-business-14-5
- beauty-business-14-6
- beauty-business-14-7
remaining_phases: []
registered_modules:
- organizations
- branches
- roles
- permissions_catalog
- configuration
- settings
- external_providers
- audit
- staff_schedules
- staff_availabilities
- schedule_exceptions
- appointment_types
- appointments
- waiting_list
- treatment_rooms
- stations
- branch_policies
- service_categories
- beauty_services
- customer_profiles
- package_definitions
- membership_plans
- staff_profiles
- commission_rules
- marketing_campaign_refs
- loyalty_integrations
- communication_integrations
- integration_dispatches
- outbox
enabled_capabilities:
- foundation
- booking_engine
- salon_management
- service_catalog
- customer_management
- packages_memberships
- staff_commission
- marketing_loyalty_integration
enabled_bundles:
- torbat_beauty
public_apis:
- { method: GET, path: /health, permission: public }
- { method: GET, path: /capabilities, permission: public }
- { method: GET, path: /metrics, permission: public }
- { method: "*", path: /api/v1/organizations, permission: beauty_business.organizations.* }
- { method: "*", path: /api/v1/branches, permission: beauty_business.branches.* }
- { method: "*", path: /api/v1/appointments, permission: beauty_business.appointments.* }
- { method: "*", path: /api/v1/services, permission: beauty_business.services.* }
- { method: "*", path: /api/v1/customers, permission: beauty_business.customers.* }
- { method: "*", path: /api/v1/staff, permission: beauty_business.staff.* }
- { method: "*", path: /api/v1/marketing-campaigns, permission: beauty_business.marketing.* }
- { method: "*", path: /api/v1/integration-dispatches, permission: beauty_business.integrations.* }
published_events:
- { event_type: beauty_business.organization.created, version: "1" }
- { event_type: beauty_business.branch.created, version: "1" }
- { event_type: beauty_business.appointment.created, version: "1" }
- { event_type: beauty_business.appointment.completed, version: "1" }
- { event_type: beauty_business.service.created, version: "1" }
- { event_type: beauty_business.customer.created, version: "1" }
- { event_type: beauty_business.staff.created, version: "1" }
- { event_type: beauty_business.integration.dispatched, version: "1" }
permission_prefix: beauty_business.*
active_adrs: []
integration_contracts:
- CRMProvider
- AccountingProvider
- LoyaltyProvider
- CommunicationProvider
- DeliveryProvider
- ExperienceProvider
- StorageProvider
- AIProvider
- IdentityProvider
known_limitations:
- Secondary entities (ServiceVariant, BranchOperatingHours, PackageLine, CommissionEntry) have models/migrations but no dedicated CRUD routes
- Integration dispatches use mock providers locally; no live CRM/Loyalty/Communication SDK calls
- Event publisher uses transactional outbox; no external bus drain wired
- Independent from Healthcare module (separate service, DB, frontend /beauty)
open_todos: []
last_handover_reference: docs/phase-handover/phase-14-7.md
last_updated: "2026-07-26"