Commit Graph
121 Commits
Author SHA1 Message Date
mohmdsdg a1d2c222bd adde images to plugins 2026-11-05 18:01:08 +03:30
MahdiandCursor 97815aba76 fix: harden Excel export (StreamableFile + clearer errors)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 21:00:48 +03:30
MahdiandCursor 9b11617eab feat: Excel export of all projects for full-access admins
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 20:44:29 +03:30
mohmdsdg a98fdb8d9e feat(remittance): add enable_remittance plugin setting to catalog and seeds 2026-10-27 18:07:10 +03:30
mohmdsdg f0989e03e3 added chart plugin in khanegi superadmin 2026-10-21 11:13:32 +03:30
mohmdsdg 47d210bd7d added chart plugin in khanegi superadmin 2026-10-21 11:13:24 +03:30
MahdiandCursor 11887bc5ed feat(get-user): expose Hamkar menu icon brand colors
Emit menu_icon_color and menu_icon_active_color when brandManaged so apps can theme nav icons separately.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 18:06:24 +03:30
MahdiandCursor 9031135797 feat(get-user): emit brand_chrome for Hamkar brandManaged opt-in
Expose brand_chrome so apps apply header/menu/body colors only after SuperAdmin color save.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 17:04:35 +03:30
mohmdsdg 7521c69c11 added main page config 2026-10-13 19:28:57 +03:30
mohmdsdg 421415fc30 added main page config 2026-10-13 19:28:45 +03:30
mohmdsdg 4881ce2f30 fix landing and logo border show 2026-10-12 21:55:24 +03:30
MahdiandCursor 30dc83890b feat: granular hamkar/khanegi permissions (manage / settings / appearance)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 20:48:32 +03:30
MahdiandCursor 674da4e939 feat: add 'other' product type for miscellaneous sites (tracking only, no remote control)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 16:52:23 +03:30
mohmdsdgandCursor 0c29222e9d Expose the price-channel per-product message template.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 20:42:56 +03:30
mohmdsdg e862ffd6da chore: sync project updates 2026-09-28 14:12:22 +03:30
mohmdsdgandCopilot 233f5e7d01 chore: sync graphify and UI updates
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-22 11:36:10 +03:30
mohmdsdgandCursor e0dd53d639 Reclaim tenant aliases from every other version, not only the same product.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 18:20:07 +03:30
mohmdsdg 6ba6a9cd45 fix some extention bug 2026-09-16 13:44:58 +03:30
mohmdsdgandCursor cf92635c0e Fix plugin purchase 500 when subscription catalog columns are missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 10:33:48 +03:30
mohmdsdgandCursor 6cc10e3333 Fix plugin store public controller param order so nest build succeeds.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 10:24:31 +03:30
mohmdsdg a78636d32e fix super admin 2026-09-10 10:04:55 +03:30
mohmdsdgandCursor bcf4724ac4 fix plugin store remote: find tenant by admin URL and allow purchase
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>
2026-09-09 22:17:44 +03:30
mohmdsdgandCursor 38337c62d7 test: build HMAC tenant fixtures from domain, drop product URLs
HMAC identity tests should not hardcode gholak/montzar hosts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:12:21 +03:30
mohmdsdgandCursor 82e74f86f0 fix remote HMAC: match tenant domain only, not shared adminUrl
k.montzar.ir on Gholaktala adminUrl was selecting tenant app.gholaktala.ir. HMAC now uses primary domain (and its subdomain), not admin/app/node URLs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:07:40 +03:30
mohmdsdgandCursor 3f0dfe448c fix remote HMAC: identify tenant by domain, not shared nodeServer
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>
2026-09-09 21:53:11 +03:30
mohmdsdg 502b0c8b24 fix pluggin bug 3 2026-09-09 20:57:14 +03:30
mohmdsdg bd12337f6e fix pluggin bug 2 2026-09-09 20:19:01 +03:30
mohmdsdg 08f648457f fix pluggin bug 2026-09-09 17:04:33 +03:30
mohmdsdg 58744d0f91 added some feature for plugin 2026-09-08 18:00:56 +03:30
mohmdsdgandCursor 67a03d9593 feat(plugins): catalog images and purchase receipt uploads
Catalog items can store up to three photos; remote tenants attach a receipt on pending requests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:56:09 +03:30
mohmdsdgandCursor 18ac137e25 fix(plugins): seed all SuperAdmin khanegi setting keys into the store catalog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 11:00:59 +03:30
mohmdsdgandCursor 94d79c175b fix(plugins): match remote HMAC tenants with the same host rules as get_user
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 10:50:40 +03:30
mohmdsdgandCursor 2d43ce6c29 Prefer exact tenant domain over shared nodeServer for remote HMAC auth.
Stops demo and shop rows that share one API URL from colliding, and skips phone-like adminUrl values when resolving X-Abshode-Domain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 22:47:42 +03:30
mohmdsdgandCursor dd212d01ed fix(plugins): resolve remote tenant from admin and app URLs
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>
2026-09-07 21:54:03 +03:30
mohmdsdgandCursor a7747366f9 fix(uploads): keep absolute nerkh logo URLs intact
Only resolve relative /uploads/ paths; rewriting legacy hosts to SuperAdmin broke logos that still live on nerkh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 20:10:07 +03:30
mohmdsdgandCursor 0c4f88debf fix(plugins): loosen plugin summary types for partial selects
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>
2026-09-07 19:57:18 +03:30
mohmdsdgandCursor b3112cf032 fix(plugins): per-tenant plugin store flag and harden broken schema APIs
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>
2026-09-07 19:51:11 +03:30
mohmdsdgandCursor 1f776cf6e2 feat(plugins): sell khanegi plugins as priced subscriptions
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>
2026-09-07 16:56:51 +03:30
mohmdsdgandCursor ccf7e90922 feat: catalog has_landing and landing_* for SuperAdmin
Expose the website landing flag and content keys in the deploy setting template.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 17:01:54 +03:30
mohmdsdgandCursor 09218ee1e2 Add enable_gold_credit to SuperAdmin setting catalog.
Default the per-tenant gold credit access flag to false so projects opt in explicitly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 00:17:45 +03:30
mohmdsdgandCursor 93202a3c18 fix(tenants): cast Prisma unique error for TS narrowing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 20:26:16 +03:30
mohmdsdgandCursor cea281bb3d fix(tenants): narrow Prisma unique-error type for strict build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 20:25:59 +03:30
mohmdsdgandCursor 93a7775887 fix(tenants): remove extra brace breaking nest build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 20:25:38 +03:30
mohmdsdgandCursor 3034c59319 fix(build): ship jalaali types with production dependencies
Move @types/jalaali-js into dependencies and add a local module declaration so nest build works when installing without devDependencies.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 18:59:38 +03:30
mohmdsdgandCursor edfbdb3469 fix(tenants): clearer duplicate slug/domain errors on create
Pre-check uniqueness and report which field conflicts with which existing version; strip primary domain from aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 18:47:38 +03:30
mohmdsdg ff7e24b2c1 feat(settings): include enamad_logo in deploy setting catalog keys
Allow enamad_logo to sync through the program settings catalog.
2026-08-24 19:39:37 +03:30
Mahdi 67281710ac fix(billing): compute plan expiry with Jalali months
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).
2026-08-24 18:03:54 +03:30
mohmdsdgandCursor 83f5834aff feat(settings): add enable_automation SuperAdmin switch (default off)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 16:15:52 +03:30
mohmdsdgandCursor 8f2f27b4a1 feat(get-user): keep custom bottom-nav slot choices across tenants
Merge stored bottom items from the shared catalog so selected menus are not reset to the four defaults.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 12:14:55 +03:30
mohmdsdgandCursor abaacf5a99 fix(get-user): apply shared khanegi nav sample to all tenants
Keep bottom menu at 4 slots so outdated per-tenant JSON cannot overflow the bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 11:42:44 +03:30