- New `show_in_list` column to control product visibility in customer list
- New `tv_price_formula_enabled` + `tv_price_formula` columns for separate TV pricing
- FormulaPriceService: isTvEnabled() and calculateTvForProduct()
- listTvProducts applies TV formula overrides before returning
- filterProductData handles both new field sets
Co-authored-by: Cursor <cursoragent@cursor.com>
Alerts now bind to a product_id and share one evaluator; displayed gold within a rounding step discharges the full wallet.
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>
Keep signed buy/sell extras so discounts work on quotes and orders, and ignore the nested user clone in this repo.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop unbounded TransactionsAdmin/customer dumps from dashboardMaster
and aggregate GT_products_report without loading all transactions.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop unbounded TransactionsAdmin/customer dumps from dashboardMaster
and aggregate GT_products_report without loading all transactions.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow SUPERADMIN_SMS_SHARED_SECRET (+ domain) like SMS remote, with
Bearer SUPERADMIN_REMOTE_TOKEN as fallback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add /super/settings endpoints and API middleware that returns generic 503 while keeping unlock routes whitelisted.
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>
Honor enable_customer_level_profit for order referral payouts, and tighten support-chat webhook/SMS plus SuperAdmin SMS panel sync settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
Port FormulaPriceService from colleague app so admins can compute a single unit price from reference mid, weight, and wage instead of offset coefficients.
Co-authored-by: Cursor <cursoragent@cursor.com>