Files
jmiller 49d276a2bd
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
docs: replace template CLAUDE.md with repo-specific version
2026-06-22 13:47:31 +00:00

2.3 KiB

MokoSuiteBeauty

Salon and spa management for Joomla 6 — booking, service menus, stylist scheduling, client profiles, walk-in queue.

Quick Reference

Field Value
Package pkg_mokosuitebeauty
Layer 4 (requires: Client → CRM → ERP → POS + HRM)
Language PHP 8.3+
Branch develop on dev, merge to main (protected)
Wiki MokoSuiteBeauty Wiki

Architecture

Joomla package (pkg_mokosuitebeauty) — Layer 4 add-on extending MokoSuitePOS.

Dependencies

  • MokoSuiteClient (Layer 0) — base platform
  • MokoSuiteCRM (Layer 1) — contacts, deals
  • MokoSuiteERP (Layer 2) — inventory, accounting
  • MokoSuitePOS (Layer 3) — touch POS, transactions
  • MokoSuiteHRM (Layer 3) — employee scheduling, payroll (optional)

Helpers (5)

  • BookingHelper — availability slots, overlap prevention (FOR UPDATE), daily schedule
  • ServiceMenuHelper — categorized menu, tiered pricing, add-ons, packages
  • ClientProfileHelper — color formulas, allergies, visit history, birthdays
  • StylistHelper — performance, commissions, leaderboard
  • WalkInHelper — queue management, stylist assignment, wait estimates

Key Patterns

  • Booking overlap check uses SELECT FOR UPDATE in transaction to prevent double-booking
  • Service pricing is tiered by stylist level (junior, senior, master)
  • Walk-in wait estimate excludes already-in-service rows

Source Directory

  • source/pkg_mokosuitebeauty.xml — package manifest
  • source/packages/ — sub-extensions

Rules

  • Never commit .claude/, .mcp.json, TODO.md, *.min.css/*.min.js
  • Attribution: Authored-by: Moko Consulting
  • Workflow directory: .mokogitea/
  • Wiki: documentation lives in the Gitea wiki, not docs/ files
  • Standards: MokoStandards
  • Changelog: [Unreleased] only — release system assigns versions
  • No upstream references: never reference competitor products

Coding Standards

  • PHP 8.3+ / Joomla 6 patterns
  • $this->getDatabase() in models, Factory::getContainer()->get(DatabaseInterface::class) in helpers
  • Factory::getApplication()->getIdentity() for user
  • FOR UPDATE inside transactions for race-condition-prone operations