# 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](https://git.mokoconsulting.tech/MokoConsulting/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](https://git.mokoconsulting.tech/MokoConsulting/MokoCLI/wiki) - **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