Remove service_charge_percentage alias and config/fee.php fallback (empty → 0).
Move code-managed Montzar/price runtime keys to can_edit=1 in deploy SQL.
Add settings:deploy and deploy:tenant artisan commands for server deploy.
Advanced admin settings merge runtime keys from local DB; block manual edits.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fetch public program-settings with 3-origin retry and no Laravel cache so
local DB settings stay in sync with the sold version.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow hiding the referral field on user registration via settings SQL and ConfigService, and document SQL-only Cursor rules that never overwrite live values.
Co-authored-by: Cursor <cursoragent@cursor.com>
montzar_live_price is the midpoint between the colleague's buy and sell rates,
so orders priced straight from it charged the customer less than we pay the
provider and the whole spread was lost on every trade, even though the app
already showed the correct side. Order base price now follows the traded side
(base + spread on buy, base - spread on sell), which also makes price_original
the real cost basis so the dashboard stops counting the provider spread as
profit. Conditional order triggers compare against the same displayed price.
Co-authored-by: Cursor <cursoragent@cursor.com>