docs: convert all ASCII charts to Mermaid diagrams
Converted 40+ ASCII art diagrams across 12 files to Mermaid: - flowchart TD/LR for process flows and architecture - erDiagram for entity relationships - graph TD for tree structures (binary tree, categories) - gantt for roadmap sprints Files: BUSINESS-01 to 05, TECH-01/03/04/05, OVERVIEW-01/02/05 Directory tree structures kept as plain code blocks (Mermaid N/A)
This commit is contained in:
@@ -18,15 +18,19 @@
|
||||
|
||||
## ۲. ساختار درخت باینری
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
ROOT["Root"] --- L["Left"]
|
||||
ROOT --- R["Right"]
|
||||
L --- L1["L1"] & L2["L2"]
|
||||
R --- R1["R1"] & R2["R2"]
|
||||
L1 --- L1a["..."] & L1b["..."]
|
||||
L2 --- L2a["..."] & L2b["..."]
|
||||
R1 --- R1a["..."] & R1b["..."]
|
||||
R2 --- R2a["..."] & R2b["..."]
|
||||
```
|
||||
Root
|
||||
/ \
|
||||
Left Right
|
||||
/ \ / \
|
||||
L1 L2 R1 R2
|
||||
/ \ / \ / \ / \
|
||||
... ... ... ... ... ← بدون محدودیت عمق
|
||||
```
|
||||
|
||||
> ← بدون محدودیت عمق
|
||||
|
||||
**قوانین:**
|
||||
- هر نود حداکثر ۲ فرزند (Binary) — `MaxDirectChildrenPerLeg = 1`
|
||||
@@ -38,36 +42,24 @@
|
||||
|
||||
## ۳. فلوی عضویت و فعالسازی
|
||||
|
||||
```
|
||||
خرید پکیج طلایی (56M تومان)
|
||||
│
|
||||
▼
|
||||
نمایش مودال قرارداد (غیرقابلبستهشدن)
|
||||
│
|
||||
▼
|
||||
مشاهده متن قرارداد ← ReadContract RPC
|
||||
│
|
||||
▼
|
||||
درخواست OTP ← RequestContractOtp (Kavenegar SMS)
|
||||
│
|
||||
▼
|
||||
وارد کردن کد ← VerifyContractOtp
|
||||
│
|
||||
▼
|
||||
امضای قرارداد ← AcceptContract
|
||||
│
|
||||
├─→ شارژ ۲ کیف پول: Balance += 56M, DiscountBalance += 112M (2×)
|
||||
│ (NetworkBalance شارژ نمیشود — فقط برای کمیسیون)
|
||||
├─→ کسر هزینه فعالسازی (25.2M از Balance)
|
||||
├─→ واریز 25.2M به Pool هفتگی (ClubActivationFee)
|
||||
├─→ قرارگیری در درخت باینری
|
||||
└─→ رفرش JWT Token (claims جدید)
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["خرید پکیج طلایی — 56M"] --> B["نمایش مودال قرارداد\nغیرقابلبستهشدن"]
|
||||
B --> C["مشاهده متن قرارداد\nReadContract RPC"]
|
||||
C --> D["درخواست OTP\nRequestContractOtp — Kavenegar"]
|
||||
D --> E["وارد کردن کد\nVerifyContractOtp"]
|
||||
E --> F["امضای قرارداد\nAcceptContract"]
|
||||
|
||||
⚠️ در خرید با وام دایا:
|
||||
├─→ Balance += 56M
|
||||
└─→ DiscountBalance += 112M (دو برابر — DayaLoanAmount × 2)
|
||||
F --> G["شارژ ۲ کیفپول\nBalance += 56M\nDiscountBalance += 112M"]
|
||||
F --> H["کسر فعالسازی\n−25.2M از Balance"]
|
||||
F --> I["واریز 25.2M\nبه Pool هفتگی"]
|
||||
F --> J["قرارگیری در\nدرخت باینری"]
|
||||
F --> K["رفرش JWT Token\nclaims جدید"]
|
||||
```
|
||||
|
||||
> ⚠️ در خرید با وام دایا: Balance += 56M, DiscountBalance += 112M (DayaLoanAmount × 2)
|
||||
> NetworkBalance شارژ نمیشود — فقط برای کمیسیون
|
||||
|
||||
---
|
||||
|
||||
## ۴. الگوریتم محاسبه کمیسیون هفتگی
|
||||
@@ -103,12 +95,15 @@
|
||||
|
||||
### ۴.۳ Pool هفتگی و توزیع
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["هر فعالسازی عضو\n25.2M واریز"] --> B["Pool هفتگی"]
|
||||
B --> C["sp_CalculateWeeklyBalances"]
|
||||
C --> D["sp_CalculateWeeklyCommissionPool"]
|
||||
D --> E["توزیع بر اساس\nUserBalance / TotalBalance"]
|
||||
```
|
||||
منبع Pool: هر فعالسازی عضو → 25.2M واریز به Pool
|
||||
توزیع: بر اساس WeeklyBalance هر عضو / مجموع WeeklyBalanceها
|
||||
SP: sp_CalculateWeeklyBalances → sp_CalculateWeeklyCommissionPool
|
||||
فرمت هفته: "YYYY-Www" (شمسی، شنبهپایه)
|
||||
```
|
||||
|
||||
> فرمت هفته: `YYYY-Www` (شمسی، شنبهپایه)
|
||||
|
||||
---
|
||||
|
||||
@@ -141,24 +136,16 @@ SP: sp_CalculateWeeklyBalances → sp_CalculateWeeklyCommissionPool
|
||||
|
||||
## ۷. یکپارچهسازی وام دایا
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["Hangfire Worker\nهر ۲۰ دقیقه — */20 * * * *"] --> B["بررسی درخواستهای pending"]
|
||||
B --> C["ارسال به API دایا\nMock/Real switchable"]
|
||||
C --> D["دریافت نتیجه"]
|
||||
D --> E["Balance += 56M"]
|
||||
D --> F["DiscountBalance += 112M\nDayaLoanAmount × 2"]
|
||||
```
|
||||
Hangfire Worker (هر ۲۰ دقیقه — cron: */20 * * * *)
|
||||
│
|
||||
▼
|
||||
بررسی درخواستهای pending
|
||||
│
|
||||
▼
|
||||
ارسال به API دایا (Mock/Real switchable)
|
||||
│
|
||||
▼
|
||||
دریافت نتیجه → شارژ ۲ کیفپول
|
||||
│
|
||||
├─→ Balance += 56M (DayaLoanAmount)
|
||||
└─→ DiscountBalance += 112M (DayaLoanAmount × 2 — دو برابر)
|
||||
مجموع: 168M
|
||||
|
||||
Hangfire retry: [AutomaticRetry(Attempts = 3)]
|
||||
```
|
||||
> مجموع شارژ: 168M — Hangfire retry: `[AutomaticRetry(Attempts = 3)]`
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user