- پنل سرور: هر نسخه ۰..N سرور (نام/مشخصات جدا)؛ هر کدام اختصاصی یا مدیریتشده؛ قیمت/مدت (۱،۳،۶،۱۲ ماه)؛ هشدار SMS نزدیک انقضا (پیشفرض ۳ روز، روزانه تا تمدید)
- داشبورد: ۵ نسخه کمموجودی؛ صفحه SMS: کارتها → جزئیات در `/sms/:tenantId`
- ظاهر اپ خانگی: صفحه `UiConfigPage` برای `appUiConfig`؛ بکفیل از رجیستری/`users.json` با `npm run prisma:backfill-appearance`؛ در فرانت: `showNotifications` / `header.visible` / `startRoute`
- ظاهر اپ همکار: `/versions/:id/ui-hamkar`؛ رنگها + حالت رجیستری (`registryMode`)؛ `settingsManaged` باید true باشد تا `ui_settings` بیاید (وگرنه لاراول میماند)
### مهم
- موجودی SMS اولیه **دمو** بود تا رنگها دیده شوند؛ منبع واقعی همکار/خانگی نیست مگر بعداً وصل شود.
- چند دامنه دستی اصلاح شده (مثل 24gold.ir، limangold.ir، vahid.gold).
- چند نسخه با تأیید کاربر از همکار به خانگی منتقل شدهاند (لیست در `FORCE_KHANEGI` داخل `import-users.ts`).
## معماری هدف اتصال به همکار/خانگی
دو جهت API:
### A) اپها → سوپرادمین
-`GET /get_user` — برند و ظاهر (موجود)
- بعدی: `GET/POST` وضعیت SMS (`status` / `consume`) با `remoteApiToken`
### B) سوپرادمین → اپها
-`GET/POST /super/settings` روی Laravel هر نسخه — تنظیمات مدیریتی
- اختیاری: reload برند / health
احراز هویت: `Tenant.remoteApiToken` در سوپرادمین + همان توکن روی نسخه.
1.**دیپلوی سوپرادمین** روی `adm.montzar.ir` (migrate + pm2 + nginx) — DB `superadmin` آماده است.
2.**پایلوت برند:** یک نسخه تست فقط از `/get_user` سوپرادمین بوت شود.
3.**ظاهر خانگی:** مصرف کامل `app_ui_config` در خانگی.
4.**API `/super/*` روی Laravel همکار و خانگی** با middleware توکن.
5.**SMS دوطرفه:** status/consume در سوپرادمین + هوک قبل/بعد ارسال در محصولات.
6. بعد از پایداری: کاهش/حذف پنل SMS داخلی محصولات.
## قواعد کار ایجنت
- بدون درخواست صریح کاربر: commit نکن، force push نکن، پنل SMS همکار/خانگی را حذف نکن.
- تغییرات همکار و خانگی را فقط وقتی کاربر صریحاً خواست؛ فعلاً اولویت سوپرادمین + طراحی قرارداد API است.
- در Workspace چندریشه: قبل از ادیت بگو در کدام ریشه کار میکنی (`SuperAdminAbshode` / `Hamkar` / `Khanegi`).
- **امنیت (همیشه):** secret / توکن / رمز را در UI، لاگ، `.env.example`، commit، یا پاسخ چت قرار نده؛ fallback هاردکد برای secret نگذار؛ رمز را فقط hash ذخیره کن و در API برنگردان؛ ورودیها را validate/normalize کن (مثل موبایل).
- **تاریخ/ساعت:** همیشه شمسی (جلالی) و به وقت ایران (`Asia/Tehran`) — انتخابگر تاریخ شمسی و فرمت نمایش از `utils/datetime` / `iran-time.util`.
- رمزها و secretهای `users.json` و `CENTRAL_SMS_SECRET` را وارد UI/لاگ عمومی نکن.
- Prisma روی ویندوز: اگر `EPERM` روی `query_engine`، اول API را متوقف کن بعد `prisma generate`.
## اجرای لوکال
`DATABASE_URL` باید PostgreSQL باشد (Docker لوکال یا DB سرور). نمونه: `.env.example`.
```bash
cd E:\projeha\SuperAdminAbshode\apps\api
npx prisma migrate deploy
npm run start:dev
cd E:\projeha\SuperAdminAbshode\apps\web
npm run dev
```
- Web: http://localhost:5173/
- API: http://localhost:3001/
## چت اول در Workspace جدید — پیشنهاد متن
> ادامه کار سوپرادمین آبشده با همکار و خانگی.
> حتماً `SuperAdminAbshode/AGENTS.md` (یا `AGENTS.md` داخل ریپوی API) را بخوان.
> تصمیمها و وضعیت فعلی همانجاست؛ از صفر مشورت نکن مگر برای مرحله بعد (پایلوت API / دیپلوی).
## تاریخ بهروزرسانی
2026-07-30 — Prisma → PostgreSQL؛ DB `superadmin` روی سرور montime؛ deploy برای `adm.montzar.ir`.
2026-07-25 — جمعبندی گفتگوهای ساخت پنل، ایمپورت نسخهها، SMS مستقل، و نقشه اتصال API.