docs: fix all discrepancies based on comprehensive code audit
Corrections verified against actual CMS/BackOffice/FrontOffice source code: - ClubActivationFee: 25,200,000 (not 25,000,000) - Tree depth: no limit (15 is commission calculation depth only) - IPG wallet charge: Balance=56M + Discount=56M - DayaLoan wallet charge: Balance=56M + Discount=112M (2×) - Discount: per-product MaxDiscountPercent (not fixed 30%) - VAT: 10% (ShopVAT) vs 9% (discount store PlaceOrder) - Kavenegar template: 'Afrino' only (not verify-foursat) - SMS sender: 1000001110100 - DayaLoan job: every 20min (not 15min) - Commission job: Sunday 00:05 (not Saturday) - Network tree: on User entity (not separate NetworkNode table) - UserWallets entity (not UserWalletBalances) - OTP: 6 digits, 5 attempts, 2min TTL, 60s cooldown - Removed non-existent constants (ClubJoiningPercentage, ClubActivationThreshold) - Fixed Hangfire Chatika interval: every 5min - Removed InventorySync from recurring jobs list
This commit is contained in:
@@ -163,16 +163,16 @@ Engine: MSSQL 2022-CU16, Collation=Arabic_CI_AS
|
||||
|
||||
| جدول | توضیح | رکوردهای تقریبی |
|
||||
|------|--------|----------------|
|
||||
| Users | کاربران | ~5K |
|
||||
| Products | محصولات | ~200 |
|
||||
| Users | کاربران + فیلدهای شبکه (NetworkParentId, LegPosition) | ~5K |
|
||||
| Products | محصولات (+ MaxDiscountPercent) | ~200 |
|
||||
| Categories | دستهبندیها | ~30 |
|
||||
| Orders | سفارشات | ~2K |
|
||||
| Inventories | موجودی | ~200 |
|
||||
| BlogPosts | پستهای بلاگ | ~50 |
|
||||
| SitePages | صفحات سایت | ~10 |
|
||||
| UserClubMemberships | عضویت باشگاه | ~500 |
|
||||
| UserContracts | قراردادها | ~500 |
|
||||
| NetworkNodes | نودهای درخت باینری | ~500 |
|
||||
| UserContracts | قراردادها (SignGuid, SignedPdfFile) | ~500 |
|
||||
| UserWallets | کیفپول (Balance, NetworkBalance, DiscountBalance) | ~5K |
|
||||
| Transactions | تراکنشها | ~5K |
|
||||
| SystemConfigurations | تنظیمات | ~30 |
|
||||
| ChatMessages | پیامهای چاتیکا | ~1K |
|
||||
@@ -225,12 +225,11 @@ FrontOffice Service Layer:
|
||||
|
||||
## ۷. Hangfire Jobs
|
||||
|
||||
| Job | فرکانس | کاربرد |
|
||||
| Job | فرکانس (cron) | کاربرد |
|
||||
|-----|---------|--------|
|
||||
| `DayaLoanProcessorJob` | هر ۱۵ دقیقه | پردازش درخواستهای وام |
|
||||
| `WeeklyCommissionJob` | هفتگی (شنبه ۰۰:۰۰) | محاسبه و توزیع کمیسیون |
|
||||
| `ChatikaJob` | هر ۵ دقیقه | همگامسازی پیامهای AI |
|
||||
| `InventorySyncJob` | هر ساعت | ایجاد رکوردهای موجودی گمشده |
|
||||
| `WeeklyCommissionCalculation` | `5 0 * * 0` (یکشنبه ۰۰:۰۵) | محاسبه و توزیع کمیسیون |
|
||||
| `DayaLoanProcessorJob` | `*/20 * * * *` (هر ۲۰ دقیقه) | پردازش درخواستهای وام |
|
||||
| `ChatikaAccountActivation` | `*/5 * * * *` (هر ۵ دقیقه) | فعالسازی حساب چاتیکا |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -162,8 +162,8 @@ DataMigration/
|
||||
| `dbo.Products` | `CMS.Products` | ImageUrl migration needed |
|
||||
| `dbo.Orders` | `CMS.Orders` | Status enum remapping |
|
||||
| `dbo.Categories` | `CMS.Categories` | Hierarchical → ParentId |
|
||||
| `dbo.NetworkTree` | `CMS.NetworkNodes` | Binary tree reconstruction |
|
||||
| `dbo.Wallets` | `CMS.UserWalletBalances` | ۳ wallet types split |
|
||||
| `dbo.NetworkTree` | `CMS.Users` | Binary tree via NetworkParentId + LegPosition روی User |
|
||||
| `dbo.Wallets` | `CMS.UserWallets` | ۳ wallet types: Balance, NetworkBalance, DiscountBalance |
|
||||
| `dbo.Transactions` | `CMS.Transactions` | Type enum remapping |
|
||||
| `dbo.Memberships` | `CMS.UserClubMemberships` | + Contract creation |
|
||||
|
||||
|
||||
@@ -176,10 +176,9 @@ public class ZarinPalService : IPaymentGateway
|
||||
```csharp
|
||||
public class KavenegarService : ISmsService
|
||||
{
|
||||
// Templates
|
||||
const string OTP_TEMPLATE = "verify-foursat";
|
||||
const string CONTRACT_TEMPLATE = "contract-verify";
|
||||
const string WELCOME_TEMPLATE = "club-welcome";
|
||||
// Templates — فقط یک تمپلیت در کد موجود است
|
||||
const string OTP_TEMPLATE = "Afrino"; // تنها تمپلیت استفادهشده
|
||||
// Sender: "1000001110100"
|
||||
|
||||
// Rate Limiting
|
||||
// ۱ SMS per phone per 60 seconds
|
||||
@@ -198,7 +197,7 @@ public class KavenegarService : ISmsService
|
||||
```csharp
|
||||
public class DayaLoanService : ILoanService
|
||||
{
|
||||
// Hangfire job — هر ۱۵ دقیقه
|
||||
// Hangfire job — هر ۲۰ دقیقه (*/20 * * * *)
|
||||
// Polly retry: 3 attempts, exponential backoff (2s, 4s, 8s)
|
||||
// Mock mode for staging (auto-approve)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user