feat: update protobuf versions and enhance club membership and commission queries
Build and Deploy / build (push) Successful in 1m41s

This commit is contained in:
masoodafar-web
2025-12-20 03:16:36 +03:30
parent 6b72e88780
commit f234af49e0
55 changed files with 352 additions and 150 deletions
@@ -2,7 +2,7 @@ namespace BackOffice.BFF.Application.CommissionCQ.Commands.TriggerWeeklyCalculat
public class TriggerWeeklyCalculationCommand : IRequest<TriggerWeeklyCalculationResponseDto>
{
public string WeekNumber { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
public bool ForceRecalculate { get; set; }
public bool SkipBalances { get; set; }
public bool SkipPool { get; set; }
@@ -17,7 +17,7 @@ public class TriggerWeeklyCalculationCommandHandler : IRequestHandler<TriggerWee
{
var grpcRequest = new TriggerWeeklyCalculationRequest
{
WeekNumber = request.WeekNumber,
WeekDefinitionId = request.WeekDefinitionId,
ForceRecalculate = request.ForceRecalculate,
SkipBalances = request.SkipBalances,
SkipPool = request.SkipPool,
@@ -9,7 +9,8 @@ public record GetAllWeeklyPoolsResponseDto
public record WeeklyCommissionPoolDto
{
public long Id { get; init; }
public string WeekNumber { get; init; } = string.Empty;
public long WeekDefinitionId { get; init; }
public string WeekDisplayName { get; init; } = string.Empty;
public long TotalPoolAmount { get; init; }
public int TotalBalances { get; init; }
public long ValuePerBalance { get; init; }
@@ -39,7 +39,8 @@ public class GetAvailableWeeksQueryHandler : IRequestHandler<GetAvailableWeeksQu
{
return new WeekInfoDto
{
WeekNumber = weekInfo.WeekNumber,
WeekDefinitionId = weekInfo.WeekDefinitionId,
DisplayName = weekInfo.DisplayName,
StartDate = weekInfo.StartDate?.ToDateTime() ?? DateTime.MinValue,
EndDate = weekInfo.EndDate?.ToDateTime() ?? DateTime.MinValue,
IsCalculated = weekInfo.IsCalculated,
@@ -10,7 +10,8 @@ public class GetAvailableWeeksResponseDto
public class WeekInfoDto
{
public required string WeekNumber { get; init; }
public required long WeekDefinitionId { get; init; }
public required string DisplayName { get; init; }
public required DateTime StartDate { get; init; }
public required DateTime EndDate { get; init; }
public bool IsCalculated { get; init; }
@@ -26,9 +26,9 @@ public class GetUserPayoutsFilter
public long? UserId { get; set; }
/// <summary>
/// شماره هفته (اختیاری - برای فیلتر)
/// شناسه هفته (اختیاری - برای فیلتر)
/// </summary>
public string? WeekNumber { get; set; }
public long? WeekDefinitionId { get; set; }
/// <summary>
/// وضعیت (اختیاری)
@@ -24,9 +24,9 @@ public class GetUserPayoutsQueryHandler : IRequestHandler<GetUserPayoutsQuery, G
cmsRequest.UserId = request.Filter.UserId.Value;
}
if (!string.IsNullOrWhiteSpace(request.Filter?.WeekNumber))
if (request.Filter?.WeekDefinitionId.HasValue == true && request.Filter.WeekDefinitionId.Value > 0)
{
cmsRequest.WeekNumber = request.Filter.WeekNumber;
cmsRequest.WeekDefinitionId = request.Filter.WeekDefinitionId.Value;
}
if (request.Filter?.Status.HasValue == true)
@@ -52,7 +52,8 @@ public class GetUserPayoutsQueryHandler : IRequestHandler<GetUserPayoutsQuery, G
Id = m.Id,
UserId = m.UserId,
UserName = m.UserName,
WeekNumber = m.WeekNumber,
WeekDefinitionId = m.WeekDefinitionId,
WeekDisplayName = m.WeekDisplayName,
BalancesEarned = (int)m.BalancesEarned,
ValuePerBalance = m.ValuePerBalance,
TotalAmount = m.TotalAmount,
@@ -31,9 +31,14 @@ public class GetUserPayoutsResponseModel
public string UserName { get; set; } = string.Empty;
/// <summary>
/// شماره هفته
/// شناسه هفته
/// </summary>
public string WeekNumber { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
/// <summary>
/// نام نمایشی هفته
/// </summary>
public string WeekDisplayName { get; set; } = string.Empty;
/// <summary>
/// تعداد تعادل‌های کسب شده
@@ -26,9 +26,9 @@ public class GetUserWeeklyBalancesFilter
public long? UserId { get; set; }
/// <summary>
/// شماره هفته (فیلتر اختیاری)
/// شناسه هفته (فیلتر اختیاری)
/// </summary>
public string? WeekNumber { get; set; }
public long? WeekDefinitionId { get; set; }
/// <summary>
/// فقط تعادل‌های فعال (منقضی نشده)
@@ -27,9 +27,9 @@ public class GetUserWeeklyBalancesQueryHandler : IRequestHandler<GetUserWeeklyBa
grpcRequest.UserId = request.Filter.UserId.Value;
}
if (!string.IsNullOrWhiteSpace(request.Filter?.WeekNumber))
if (request.Filter?.WeekDefinitionId.HasValue == true && request.Filter.WeekDefinitionId.Value > 0)
{
grpcRequest.WeekNumber = request.Filter.WeekNumber;
grpcRequest.WeekDefinitionId = request.Filter.WeekDefinitionId.Value;
}
var response = await _context.Commissions.GetUserWeeklyBalancesAsync(grpcRequest, cancellationToken: cancellationToken);
@@ -15,10 +15,10 @@ public class GetUserWeeklyBalancesQueryValidator : AbstractValidator<GetUserWeek
.When(x => x.Filter!.UserId.HasValue)
.WithMessage("شناسه کاربر معتبر نیست");
RuleFor(x => x.Filter!.WeekNumber)
.Matches(@"^\d{4}-W\d{2}$")
.When(x => !string.IsNullOrWhiteSpace(x.Filter!.WeekNumber))
.WithMessage("فرمت شماره هفته باید به صورت YYYY-Www باشد (مثال: 2025-W48)");
RuleFor(x => x.Filter!.WeekDefinitionId)
.GreaterThan(0)
.When(x => x.Filter!.WeekDefinitionId.HasValue)
.WithMessage("شناسه هفته معتبر نیست");
});
}
}
@@ -10,7 +10,8 @@ public record UserWeeklyBalanceDto
{
public long Id { get; init; }
public long UserId { get; init; }
public string WeekNumber { get; init; } = string.Empty;
public long WeekDefinitionId { get; init; }
public string WeekDisplayName { get; init; } = string.Empty;
public int LeftLegBalances { get; init; }
public int RightLegBalances { get; init; }
public int TotalBalances { get; init; }
@@ -3,7 +3,7 @@ namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetWeeklyPool;
public record GetWeeklyPoolQuery : IRequest<GetWeeklyPoolResponseDto>
{
/// <summary>
/// شماره هفته (فرمت: YYYY-Www مثلاً 2025-W48)
/// شناسه هفته
/// </summary>
public string WeekNumber { get; init; } = string.Empty;
public long WeekDefinitionId { get; init; }
}
@@ -3,7 +3,7 @@ namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetWeeklyPool;
public class GetWeeklyPoolResponseDto
{
public long Id { get; set; }
public string WeekNumber { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
public long TotalPoolAmount { get; set; }
public long TotalBalances { get; set; }
public decimal ValuePerBalance { get; set; }
@@ -2,7 +2,7 @@ namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetWorkerExecutionLogs
public class GetWorkerExecutionLogsQuery : IRequest<GetWorkerExecutionLogsResponseDto>
{
public string? WeekNumber { get; set; }
public long? WeekDefinitionId { get; set; }
public string? ExecutionId { get; set; }
public bool? SuccessOnly { get; set; }
public bool? FailedOnly { get; set; }
@@ -21,9 +21,9 @@ public class GetWorkerExecutionLogsQueryHandler : IRequestHandler<GetWorkerExecu
PageSize = request.PageSize
};
if (!string.IsNullOrWhiteSpace(request.WeekNumber))
if (request.WeekDefinitionId.HasValue && request.WeekDefinitionId.Value > 0)
{
grpcRequest.WeekNumber = request.WeekNumber;
grpcRequest.WeekDefinitionId = request.WeekDefinitionId.Value;
}
if (!string.IsNullOrWhiteSpace(request.ExecutionId))
@@ -9,7 +9,8 @@ public class GetWorkerExecutionLogsResponseDto
public class WorkerExecutionLogModel
{
public string ExecutionId { get; set; } = string.Empty;
public string WeekNumber { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
public string WeekDisplayName { get; set; } = string.Empty;
public string Step { get; set; } = string.Empty;
public bool Success { get; set; }
public string? ErrorMessage { get; set; }