HMAC k.montzar.ir matches the version that uses that admin panel. Remote buy is no longer blocked by plugin_store_enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
new.gholaktala.ir is the API host of many versions. Prefer subdomain of the product domain and refuse ambiguous nodeServer ties. 403 names the matched tenant.
Co-authored-by: Cursor <cursoragent@cursor.com>
HMAC only matched tenant.domain, so k.montzar.ir / new.gholaktala.ir missed the row. Also return an empty store when catalog tables are missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow list/expiring helpers to map rows that omit store columns so nest build passes after prisma generate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store enablement is now a tenant settings row instead of a global runtime switch, and expiring/requests endpoints degrade to empty lists when store tables are missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Catalog prices, purchase requests, and setting-key activation live on SuperAdmin so module admins can buy add-ons. Also rewrite legacy nerkh logo hosts to the SuperAdmin upload origin.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server/plugin/support charges used Gregorian Date#setMonth, so 3 months from 1405/06/01 became 1405/09/02. Now add N Jalali months minus one day (1405/08/30).
Includes mobile auth, get_user/get_version, SMS wallet parity endpoints, appearance backfill, and related Prisma migrations.
Co-authored-by: Cursor <cursoragent@cursor.com>