Files
MokoSuiteRealty/CLAUDE.md
T
jmiller b7e801a349
Cascade Main -> Dev / Cascade main -> dev (push) Has been cancelled
Sync Workflows to Repos / sync (push) Has been cancelled
Revert "Merge branch 'dev' into main"
This reverts commit 2cc33cbebb, reversing
changes made to 85ae52e621.
2026-07-10 16:26:18 -05:00

2.2 KiB

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

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
  • 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