TorbatYar/frontend/docs/beauty-api-connection-report.md
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

4.2 KiB

Beauty API Connection Report

Date: 2026-07-26
Client: modules/beauty/services/beauty-business-api.ts
BFF: /api/beauty-business/*:8011


Connection Architecture

Browser (beauty pages)
  → beautyBusinessApi (tenant + JWT)
  → Next.js BFF /api/beauty-business/[...path]
  → beauty-business-service :8011

No mock data. All list/create/mutation calls use beautyBusinessApi with X-Tenant-ID and Bearer token.


API Resources — Frontend Coverage

API Resource Methods in Client UI Surfaces
/health, /capabilities, /metrics GET Hub, dashboards, monitoring
organizations list, get, create, update, delete Owner, admin
branches list, get, create, update, delete Owner, admin, booking forms
customers list, get, create Owner, admin, customer portal, booking
staff list, get, create Owner, admin, staff portal, schedules
service-categories list, get, create Owner catalog
services list, get, create Owner catalog, public site, booking
staff-schedules list, get, create Owner booking, staff portal
waiting-list list, get, create Owner, reception queue/walk-in
treatment-rooms list, get, create Owner salon
stations list, get, create Owner salon
branch-policies list, get, create Owner salon
package-definitions list, get, create Owner, customer, public
membership-plans list, get, create Owner, customer
commission-rules list, get, create Owner, staff commission page
marketing-campaigns list, get, create Owner, public campaigns
loyalty-integrations list, get, create Owner integrations tab
communication-integrations list, get, create Owner integrations tab
integration-dispatches list, get, create Owner integrations tab
appointments list, get, create, update, confirm, check-in, complete, cancel, no-show, history Owner, reception, customer, staff, public book
settings list, upsert Owner settings, admin settings
permissions/catalog GET Owner settings, admin permissions
audit list Workspace detail drawers
external-providers list, get, create, update, delete Owner integration pages

Workflow Actions Connected

Action API Endpoint UI Trigger
Confirm appointment POST .../confirm Owner table, reception check-in
Check-in POST .../check-in Owner table, reception check-in
Complete POST .../complete Owner table, reception check-out
Cancel POST .../cancel Owner table, reception
No-show POST .../no-show Owner table, reception

UI Surface External Module Behavior
Customer invoices/payments /accounting/* Navigation + empty state
Customer loyalty Loyalty API via beauty integrations list Read from loyaltyIntegrations
Reception payments /accounting Explicit link
Owner CRM/accounting integration externalProviders filtered by kind Real list from API

API Methods Not in Backend (Documented)

These permissions exist in backend definitions but routes are create/list/get only — client has no update/delete stubs:

  • customers, staff, service-categories, services, schedules, waiting-list, rooms, stations, policies, packages, memberships, commissions, marketing campaigns, integrations

When backend adds PATCH//delete, add methods to beauty-business-api.ts and enable updateFn/deleteFn in resource configs.


TanStack Query Keys

Pattern: ["beauty", tenantId, resource, ...params]
Lookups: ["beauty", tenantId, "lookups", entity]
Invalidation on mutation: resource queryKey + lookups


Error Handling

  • BeautyBusinessApiError → toast message + ErrorState retry
  • 401 → session refresh via getValidAccessToken / refreshSession
  • 403 → PermissionDeniedState
  • Network failure → Persian connection error message