docs: update BUSINESS-02, BUSINESS-03, TECH-03
BUSINESS-02: - فرمول هایبرید: حذف MIN، اضافه validation کیفپول اعتباری - فلوی خرید: اضافه مرحله بررسی موجودی + UserWalletChangeLog - نامگذاری جدید کیفپولها: اصلی، اعتباری، پاداش تیمی - جدول وضعیت: اضافه WalletChangeLog + Validation BUSINESS-03: - بخش ۹ جدید: ExpirePendingOrdersService (۱۵ دقیقه) - دیاگرام Mermaid فلوی انقضا TECH-03: - فیکس URL پروداکشن (kbs1→kbs2) + هشدار - ۴ کامیت جدید در بخش ۹.۲ - بخش ۹.۳ فیکس URL پروداکشن - بخش ۹.۴ نامگذاری کیفپولها
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 🚀 استقرار، CI/CD و زیرساخت
|
||||
|
||||
> **منابع ادغامشده:** `CICD-PIPELINE-GUIDE.md`, `DEPLOYMENT-README.md`, `INFRASTRUCTURE-GUIDE.md`, `INGRESS-NGINX-WARNING.md`, `OFFLINE-DEPLOYMENT-GUIDE.md`, `SERVER-MIRRORS-CONFIG.md`
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴ (بروزرسانی: PVC آپلود + K8s Secret برای config دائمی + جدا کردن appsettings هر برنچ)
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴ (بروزرسانی: فیکس URL پروداکشن + چریپیک فیکسهای WalletChangeLog/Validation/Expiry)
|
||||
|
||||
---
|
||||
|
||||
@@ -473,21 +473,55 @@ flowchart TD
|
||||
| `9288d06` | feat: externalize appsettings to K8s Secret — config persists independently |
|
||||
| `e72673c` | chore(staging): remove appsettings.Production.json (فقط kub-stage) |
|
||||
| `3ebe0f9` | chore(production): remove appsettings.Staging.json (فقط production) |
|
||||
| `f3ac5ad` | fix: add missing UserWalletChangeLog for discount shop purchases |
|
||||
| `0457ef6` | fix: validate discount wallet balance before applying discount |
|
||||
| `e206b71` | fix: reduce discount order expiry from 30 to 15 minutes |
|
||||
| `2620a24` | fix: correct production URLs from kbs1 to kbs2 in cms-config |
|
||||
|
||||
> کامیتهای PVC و Secret به هر دو شاخه push شدهاند.
|
||||
> ⚠️ کامیتهای حذف appsettings فقط به برنچ مربوطه push شده — cherry-pick نکنید!
|
||||
|
||||
### ۹.۳ فیکس URL پروداکشن (اسفند ۱۴۰۴)
|
||||
|
||||
> **مشکل:** در `cms-config.yaml` پروداکشن، URLها به اشتباه `kbs1.ir` (استیج) بودند.
|
||||
> زرینپال callback را به سرور استیج میفرستاد → خطای 401 → `Code=-1` (خطای ناشناخته).
|
||||
|
||||
| فیلد | مقدار اشتباه | مقدار صحیح |
|
||||
|------|-------------|------------|
|
||||
| `CmsBaseUrl` | `https://cms.kbs1.ir` | `https://cms.kbs2.ir` |
|
||||
| `FrontOfficeBaseUrl` | `https://kbs1.ir` | `https://kbs2.ir` |
|
||||
|
||||
```bash
|
||||
# فیکس مستقیم روی سرور (بدون نیاز به rebuild)
|
||||
kubectl apply -f cms-config.yaml
|
||||
kubectl rollout restart deployment/cms
|
||||
```
|
||||
|
||||
### ۹.۴ نامگذاری کیفپولها (اسفند ۱۴۰۴)
|
||||
|
||||
> تغییر عنوان کیفپولها در تمام UI (FrontOffice: 5 فایل، BackOffice: 7 فایل):
|
||||
|
||||
| فیلد | نام قدیم | نام جدید |
|
||||
|------|---------|----------|
|
||||
| `Balance` | عادی / نقدی | **کیف پول اصلی** |
|
||||
| `DiscountBalance` | تخفیفی / تخفیف | **کیف پول اعتباری** |
|
||||
| `NetworkBalance` | شبکه / طلایی | **پاداش تیمی** |
|
||||
|
||||
**تنظیمات محیطی Production (`appsettings.Production.json`):**
|
||||
|
||||
| تنظیم | مقدار |
|
||||
|--------|-------|
|
||||
| `ZarinPal.MerchantId` | `4225d555-5fa9-4df0-9b61-1ce152cbbba8` |
|
||||
| `ZarinPal.UseSandbox` | `false` |
|
||||
| `CmsBaseUrl` | `https://cms.kbs2.ir` |
|
||||
| `FrontOfficeBaseUrl` | `https://kbs2.ir` |
|
||||
| `SeedWorkers.MagicWalletCycleSeed.Enabled` | `true` |
|
||||
| `Kestrel.Endpoints.Grpc.Protocols` | `Http2` |
|
||||
| `Seq.ServerUrl` | `http://seq-svc:5341` |
|
||||
| `ConnectionStrings.Default` | `Server=mssql-svc;Database=KBS` |
|
||||
|
||||
> ⚠️ **مهم:** URLها باید `kbs2.ir` باشند نه `kbs1.ir` — اشتباه در URL باعث خطای 401 زرینپال میشود.
|
||||
|
||||
```bash
|
||||
# k8s-health-check.sh (namespace = default)
|
||||
kubectl get pods
|
||||
|
||||
Reference in New Issue
Block a user