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; }
@@ -11,7 +11,7 @@ public class CommissionProfile : IRegister
.Map(dest => dest.Id, src => src.Id)
.Map(dest => dest.CalculatedAt, src => src.CalculatedAt)
.Map(dest => dest.IsCalculated, src => src.IsCalculated)
.Map(dest => dest.WeekNumber, src => src.WeekNumber)
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId)
.Map(dest => dest.TotalPoolAmount, src => src.TotalPoolAmount)
.Map(dest => dest.ValuePerBalance, src => src.ValuePerBalance)
.Map(dest => dest.TotalBalances, src => src.TotalBalances)
@@ -16,18 +16,26 @@ public class GetAllConfigurationsQueryHandler : IRequestHandler<GetAllConfigurat
{
var grpcRequest = new GetAllConfigurationsRequest
{
PageIndex = request.PageIndex,
PageSize = request.PageSize
PaginationState = new CMSMicroservice.Protobuf.Protos.PaginationState
{
PageNumber = request.PageIndex,
PageSize = request.PageSize
}
};
if (request.Scope.HasValue)
if (request.Scope.HasValue || request.IsActive.HasValue)
{
grpcRequest.Scope = request.Scope.Value;
}
grpcRequest.Filter = new GetAllConfigurationsFilter();
if (request.Scope.HasValue)
{
grpcRequest.Filter.Scope = request.Scope.Value;
}
if (request.IsActive.HasValue)
{
grpcRequest.IsActive = request.IsActive.Value;
if (request.IsActive.HasValue)
{
grpcRequest.Filter.IsActive = request.IsActive.Value;
}
}
var response = await _context.Configurations.GetAllConfigurationsAsync(grpcRequest, cancellationToken: cancellationToken);
@@ -63,8 +63,11 @@ public class GetSystemHealthQueryHandler : IRequestHandler<GetSystemHealthQuery,
await _context.Configurations.GetAllConfigurationsAsync(
new GetAllConfigurationsRequest
{
PageIndex = 1,
PageSize = 1
PaginationState = new CMSMicroservice.Protobuf.Protos.PaginationState
{
PageNumber = 1,
PageSize = 1
}
},
cancellationToken: cancellationToken);
stopwatch.Stop();
@@ -25,5 +25,5 @@ public record GetNetworkTreeQuery : IRequest<GetNetworkTreeResponseDto>
/// <summary>
/// فیلتر براساس شماره هفته فعالسازی (مثال: 2025-W05)
/// </summary>
public string? ActivationWeekNumber { get; init; }
public long? ActivationWeekDefinitionId { get; init; }
}
@@ -59,7 +59,7 @@ public class NetworkTreeNodeDto
/// <summary>
/// شماره هفته فعال‌سازی
/// </summary>
public string ActivationWeekNumber { get; set; } = string.Empty;
public long? ActivationWeekDefinitionId { get; set; }
/// <summary>
/// تاریخ ایجاد کاربر
@@ -8,6 +8,7 @@ public record CreateNewProductsCommand : IRequest<CreateNewProductsResponseDto>
public long Price { get; init; }
public int Discount { get; init; }
public int Rate { get; init; }
public int RemainingCount { get; init; }
public ImageFileModel ImageFile { get; init; }
public ImageFileModel ThumbnailFile { get; init; }
// لیست شناسه دسته‌بندی‌های محصول
@@ -9,6 +9,7 @@ public record UpdateProductsCommand : IRequest<Unit>
public long Price { get; init; }
public int Discount { get; init; }
public int Rate { get; init; }
public int RemainingCount { get; init; }
public string ImagePath { get; init; }
public string ThumbnailPath { get; init; }
public ImageFileModel ImageFile { get; init; }