487d1ceb15
Added 5 Commands and 4 Queries for commission calculation and payout system: Commands: - CalculateWeeklyBalances: Recursive binary tree traversal for leg balances - CalculateWeeklyCommissionPool: Calculate ValuePerBalance from total pool - ProcessUserPayouts: Distribute commission to users, create payout records - RequestWithdrawal: User requests cash/diamond withdrawal - ProcessWithdrawal: Admin approves/rejects withdrawal Queries: - GetWeeklyCommissionPool: Retrieve pool details - GetUserCommissionPayouts: List payouts with filters (status, week, user) - GetCommissionPayoutHistory: Complete audit trail - GetUserWeeklyBalances: Show leg balances and contributions Total: 35 files, ~1,100 lines of code Binary tree algorithm, state machine, withdrawal system implemented
33 lines
876 B
C#
33 lines
876 B
C#
namespace CMSMicroservice.Application.CommissionCQ.Queries.GetUserWeeklyBalances;
|
|
|
|
/// <summary>
|
|
/// Query برای دریافت تعادلهای هفتگی کاربر
|
|
/// </summary>
|
|
public record GetUserWeeklyBalancesQuery : IRequest<GetUserWeeklyBalancesResponseDto>
|
|
{
|
|
/// <summary>
|
|
/// شناسه کاربر (اختیاری)
|
|
/// </summary>
|
|
public long? UserId { get; init; }
|
|
|
|
/// <summary>
|
|
/// شماره هفته (اختیاری)
|
|
/// </summary>
|
|
public string? WeekNumber { get; init; }
|
|
|
|
/// <summary>
|
|
/// فقط موارد Expired نشده؟
|
|
/// </summary>
|
|
public bool? OnlyActive { get; init; }
|
|
|
|
/// <summary>
|
|
/// مرتبسازی
|
|
/// </summary>
|
|
public string? SortBy { get; init; }
|
|
|
|
/// <summary>
|
|
/// Pagination
|
|
/// </summary>
|
|
public PaginationState? PaginationState { get; init; }
|
|
}
|