generated from MokoConsulting/Template-Joomla
56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# MokoSuiteRealty
|
|
|
|
Real estate management for Joomla 6 — listings, showings, offers, commissions, open houses, property search.
|
|
|
|
## Quick Reference
|
|
|
|
| Field | Value |
|
|
|---|---|
|
|
| **Package** | `pkg_mokosuiterealty` |
|
|
| **Layer** | 2 (requires: Client → CRM) |
|
|
| **Language** | PHP 8.3+ |
|
|
| **Branch** | develop on `dev`, merge to `main` (protected) |
|
|
| **Wiki** | [MokoSuiteRealty Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteRealty/wiki) |
|
|
|
|
## Architecture
|
|
|
|
Joomla **package** (`pkg_mokosuiterealty`) — Layer 2 add-on extending MokoSuiteCRM.
|
|
|
|
### Dependencies
|
|
- MokoSuiteClient (Layer 0) — base platform
|
|
- MokoSuiteCRM (Layer 1) — contacts, deals, invoicing
|
|
|
|
### Helpers (6)
|
|
- `ListingHelper` — filtered search, dashboard stats, price history (transactional)
|
|
- `CommissionHelper` — split calculations, agent YTD, pending payouts
|
|
- `ShowingHelper` — scheduling, agent calendar, buyer feedback
|
|
- `OfferHelper` — submit, accept (atomic FOR UPDATE), competing rejection
|
|
- `OpenHouseHelper` — event scheduling, visitor sign-in, lead capture
|
|
- `PropertySearchHelper` — Haversine geo proximity, saved searches
|
|
|
|
### Database Tables (9)
|
|
`listings`, `listing_photos`, `showings`, `offers`, `commissions`, `open_houses`, `open_house_visitors`, `price_history`, `saved_searches`
|
|
|
|
## Source Directory
|
|
|
|
- `source/pkg_mokosuiterealty.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
|
|
- `quoteName()` for columns, `(int)` cast for IDs, `quote()` for strings
|