generated from MokoConsulting/Template-Joomla
59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
# 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
|