feat: add GetWeekDefinitions RPC and corresponding query handler for week retrieval
This commit is contained in:
+2
-2
@@ -6,9 +6,9 @@ namespace FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyCommissionPayout
|
||||
public record GetMyCommissionPayoutsQuery : IRequest<GetMyCommissionPayoutsResponseDto>
|
||||
{
|
||||
/// <summary>
|
||||
/// شماره هفته در فرمت ISO (مثال: "2025-W48"، null = همه)
|
||||
/// شناسه تعریف هفته (null = همه)
|
||||
/// </summary>
|
||||
public string? WeekNumber { get; init; }
|
||||
public long? WeekDefinitionId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// وضعیت: 0=Pending, 1=Calculated, 2=Paid, 3=Withdrawn (null = همه)
|
||||
|
||||
+4
-4
@@ -28,8 +28,8 @@ public class GetMyCommissionPayoutsQueryHandler : IRequestHandler<GetMyCommissio
|
||||
};
|
||||
|
||||
// WeekNumber is string type in proto - assign directly
|
||||
if (!string.IsNullOrEmpty(request.WeekNumber))
|
||||
cmsRequest.WeekNumber = request.WeekNumber;
|
||||
if (request.WeekDefinitionId!=null)
|
||||
cmsRequest.WeekDefinitionId = request.WeekDefinitionId;
|
||||
|
||||
if (request.Status.HasValue)
|
||||
cmsRequest.Status = request.Status.Value; // int? type in proto
|
||||
@@ -39,8 +39,8 @@ public class GetMyCommissionPayoutsQueryHandler : IRequestHandler<GetMyCommissio
|
||||
var payouts = response.Models.Select(p => new CommissionPayoutDto
|
||||
{
|
||||
Id = p.Id,
|
||||
WeekNumber = p.WeekNumber,
|
||||
WeekLabel = $"هفته {p.WeekNumber}",
|
||||
WeekDefinitionId = p.WeekDefinitionId,
|
||||
WeekDisplayName = p.WeekDisplayName,
|
||||
BalancesEarned = (int)p.BalancesEarned,
|
||||
TotalAmount = p.TotalAmount,
|
||||
AmountFormatted = FormatCurrency(p.TotalAmount),
|
||||
|
||||
+4
-4
@@ -16,14 +16,14 @@ public class CommissionPayoutDto
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره هفته (e.g., "2024-W45")
|
||||
/// شناسه تعریف هفته
|
||||
/// </summary>
|
||||
public string WeekNumber { get; set; } = string.Empty;
|
||||
public long WeekDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// لیبل هفته (هفته 45 - آذر 1403)
|
||||
/// نام نمایشی هفته (هفته 45 - آذر 1403)
|
||||
/// </summary>
|
||||
public string WeekLabel { get; set; } = string.Empty;
|
||||
public string WeekDisplayName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// تعداد Balance کسب شده
|
||||
|
||||
+2
-2
@@ -6,9 +6,9 @@ namespace FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
||||
public record GetMyWeeklyBalancesQuery : IRequest<GetMyWeeklyBalancesResponseDto>
|
||||
{
|
||||
/// <summary>
|
||||
/// شماره هفته در فرمت ISO (مثال: "2025-W48"، null = هفته جاری)
|
||||
/// شناسه تعریف هفته (null = همه هفتهها)
|
||||
/// </summary>
|
||||
public string? WeekNumber { get; init; }
|
||||
public long? WeekDefinitionId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// فقط تعادلهای فعال (غیر منقضی)
|
||||
|
||||
+4
-3
@@ -29,8 +29,8 @@ public class GetMyWeeklyBalancesQueryHandler : IRequestHandler<GetMyWeeklyBalanc
|
||||
};
|
||||
|
||||
// WeekNumber is string in proto (format: "YYYY-Www")
|
||||
if (!string.IsNullOrEmpty(request.WeekNumber))
|
||||
cmsRequest.WeekNumber = request.WeekNumber;
|
||||
if (request.WeekDefinitionId!=null && request.WeekDefinitionId>0)
|
||||
cmsRequest.WeekDefinitionId = request.WeekDefinitionId;
|
||||
|
||||
var response = await _context.Commission.GetUserWeeklyBalancesAsync(cmsRequest, cancellationToken: cancellationToken);
|
||||
|
||||
@@ -38,7 +38,8 @@ public class GetMyWeeklyBalancesQueryHandler : IRequestHandler<GetMyWeeklyBalanc
|
||||
var balances = response.Models.Select(b => new WeeklyBalanceItemDto
|
||||
{
|
||||
Id = b.Id,
|
||||
WeekNumber = b.WeekNumber,
|
||||
WeekDefinitionId = b.WeekDefinitionId,
|
||||
WeekLabel = b.WeekDisplayName,
|
||||
LeftLegBalances = b.LeftLegBalances,
|
||||
RightLegBalances = b.RightLegBalances,
|
||||
TotalBalances = b.TotalBalances,
|
||||
|
||||
+7
-2
@@ -46,9 +46,14 @@ public class WeeklyBalanceItemDto
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره هفته (فرمت: "2025-W48")
|
||||
/// شناسه تعریف هفته
|
||||
/// </summary>
|
||||
public string WeekNumber { get; set; } = string.Empty;
|
||||
public long WeekDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// برچسب هفته (مثال: "هفته اول")
|
||||
/// </summary>
|
||||
public string WeekLabel { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// تعادل پای چپ
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
namespace FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست هفتهها برای dropdown
|
||||
/// </summary>
|
||||
public record GetWeekDefinitionsQuery : IRequest<GetWeekDefinitionsResponseDto>
|
||||
{
|
||||
//جستجوی متنی روی DisplayName
|
||||
public string? SearchText { get; init; }
|
||||
|
||||
//شماره صفحه
|
||||
public int PageNumber { get; init; } = 1;
|
||||
|
||||
//تعداد در صفحه
|
||||
public int PageSize { get; init; } = 100;
|
||||
|
||||
//سال میلادی
|
||||
public int? GregorianYear { get; init; }
|
||||
|
||||
//سال شمسی
|
||||
public int? PersianYear { get; init; }
|
||||
|
||||
//فقط هفتههای فعال
|
||||
public bool? IsActive { get; init; }
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
using CMSMicroservice.Protobuf.Protos.Commission;
|
||||
using FrontOffice.BFF.Application.Common.Models;
|
||||
|
||||
namespace FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
||||
|
||||
public class GetWeekDefinitionsQueryHandler : IRequestHandler<GetWeekDefinitionsQuery, GetWeekDefinitionsResponseDto>
|
||||
{
|
||||
private readonly IApplicationContractContext _context;
|
||||
|
||||
public GetWeekDefinitionsQueryHandler(IApplicationContractContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task<GetWeekDefinitionsResponseDto> Handle(GetWeekDefinitionsQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
// ساخت درخواست به CMS
|
||||
var cmsRequest = new GetWeekDefinitionsRequest
|
||||
{
|
||||
PaginationState = new CMSMicroservice.Protobuf.Protos.PaginationState
|
||||
{
|
||||
PageNumber = request.PageNumber,
|
||||
PageSize = request.PageSize
|
||||
}
|
||||
};
|
||||
|
||||
// اعمال فیلتر
|
||||
var filter = new GetWeekDefinitionsFilter();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.SearchText))
|
||||
filter.SearchText = request.SearchText;
|
||||
|
||||
if (request.GregorianYear.HasValue)
|
||||
filter.GregorianYear = request.GregorianYear.Value;
|
||||
|
||||
if (request.PersianYear.HasValue)
|
||||
filter.PersianYear = request.PersianYear.Value;
|
||||
|
||||
if (request.IsActive.HasValue)
|
||||
filter.IsActive = request.IsActive.Value;
|
||||
|
||||
cmsRequest.Filter = filter;
|
||||
|
||||
// فراخوانی CMS
|
||||
var response = await _context.Commission.GetWeekDefinitionsAsync(cmsRequest, cancellationToken: cancellationToken);
|
||||
|
||||
// تبدیل به DTO
|
||||
var weeks = response.Data.Select(w => new WeekDefinitionDto
|
||||
{
|
||||
Id = w.Id,
|
||||
WeekOrder = w.WeekOrder,
|
||||
DisplayName = w.DisplayName,
|
||||
GregorianWeekNumber = w.GregorianWeekNumber,
|
||||
PersianWeekNumber = w.PersianWeekNumber,
|
||||
StartDate = w.StartDate?.ToDateTime() ?? DateTime.MinValue,
|
||||
EndDate = w.EndDate?.ToDateTime() ?? DateTime.MinValue,
|
||||
GregorianYear = w.GregorianYear,
|
||||
PersianYear = w.PersianYear,
|
||||
IsActive = w.IsActive,
|
||||
IsCurrentWeek = w.IsCurrentWeek,
|
||||
StartDatePersian = FormatPersianDate(w.StartDate?.ToDateTime()),
|
||||
EndDatePersian = FormatPersianDate(w.EndDate?.ToDateTime())
|
||||
}).ToList();
|
||||
|
||||
return new GetWeekDefinitionsResponseDto
|
||||
{
|
||||
Data = weeks,
|
||||
TotalCount = response.TotalCount
|
||||
};
|
||||
}
|
||||
|
||||
private static string FormatPersianDate(DateTime? date)
|
||||
{
|
||||
if (!date.HasValue) return string.Empty;
|
||||
// TODO: استفاده از PersianCalendar
|
||||
return date.Value.ToString("yyyy/MM/dd");
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
namespace FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
||||
|
||||
/// <summary>
|
||||
/// پاسخ لیست هفتهها
|
||||
/// </summary>
|
||||
public class GetWeekDefinitionsResponseDto
|
||||
{
|
||||
//لیست هفتهها
|
||||
public List<WeekDefinitionDto> Data { get; set; } = new();
|
||||
|
||||
//تعداد کل
|
||||
public int TotalCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// آیتم هفته برای dropdown
|
||||
/// </summary>
|
||||
public class WeekDefinitionDto
|
||||
{
|
||||
//شناسه تعریف هفته
|
||||
public long Id { get; set; }
|
||||
|
||||
//شماره ترتیب هفته (1, 2, 3, ...)
|
||||
public int WeekOrder { get; set; }
|
||||
|
||||
//نام نمایشی هفته (هفته یکم، هفته دوم، ...)
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
|
||||
//شماره هفته میلادی (2025-W46)
|
||||
public string GregorianWeekNumber { get; set; } = string.Empty;
|
||||
|
||||
//شماره هفته شمسی (1404-W35)
|
||||
public string PersianWeekNumber { get; set; } = string.Empty;
|
||||
|
||||
//تاریخ شروع هفته
|
||||
public DateTime StartDate { get; set; }
|
||||
|
||||
//تاریخ پایان هفته
|
||||
public DateTime EndDate { get; set; }
|
||||
|
||||
//سال میلادی
|
||||
public int GregorianYear { get; set; }
|
||||
|
||||
//سال شمسی
|
||||
public int PersianYear { get; set; }
|
||||
|
||||
//فعال بودن
|
||||
public bool IsActive { get; set; }
|
||||
|
||||
//آیا هفته جاری است؟
|
||||
public bool IsCurrentWeek { get; set; }
|
||||
|
||||
//تاریخ شروع به شمسی
|
||||
public string StartDatePersian { get; set; } = string.Empty;
|
||||
|
||||
//تاریخ پایان به شمسی
|
||||
public string EndDatePersian { get; set; } = string.Empty;
|
||||
}
|
||||
+1
-1
@@ -84,7 +84,7 @@ public class GetMyNetworkTreeQueryHandler : IRequestHandler<GetMyNetworkTreeQuer
|
||||
IsActive = cmsNode.IsActive,
|
||||
JoinedAt = cmsNode.JoinedAt?.ToDateTime(),
|
||||
IsClubActive = cmsNode.IsClubActive,
|
||||
ActivationWeekNumber = cmsNode.ActivationWeekNumber,
|
||||
ActivationWeekDefinitionId = cmsNode.ActivationWeekDefinitionId,
|
||||
LeftChild = leftChild != null ? BuildNodeRecursive(leftChild, allNodes, nodeDict, level + 1) : null,
|
||||
RightChild = rightChild != null ? BuildNodeRecursive(rightChild, allNodes, nodeDict, level + 1) : null
|
||||
};
|
||||
|
||||
+1
-1
@@ -83,5 +83,5 @@ public class NetworkNodeDto
|
||||
/// <summary>
|
||||
/// شماره هفته فعالسازی
|
||||
/// </summary>
|
||||
public string? ActivationWeekNumber { get; set; }
|
||||
public long? ActivationWeekDefinitionId { get; set; }
|
||||
}
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ public class GetSubordinateTreeQueryHandler : IRequestHandler<GetSubordinateTree
|
||||
IsActive = cmsNode.IsActive,
|
||||
JoinedAt = cmsNode.JoinedAt?.ToDateTime(),
|
||||
IsClubActive = cmsNode.IsClubActive,
|
||||
ActivationWeekNumber = cmsNode.ActivationWeekNumber,
|
||||
ActivationWeekDefinitionId = cmsNode.ActivationWeekDefinitionId,
|
||||
LeftChild = leftChild != null ? BuildNodeRecursive(leftChild, allNodes, nodeDict, level + 1) : null,
|
||||
RightChild = rightChild != null ? BuildNodeRecursive(rightChild, allNodes, nodeDict, level + 1) : null
|
||||
};
|
||||
|
||||
+2
-1
@@ -30,7 +30,8 @@ public class GetUserWithdrawalsQueryHandler : IRequestHandler<GetUserWithdrawals
|
||||
.Select(m => new UserWithdrawalModel
|
||||
{
|
||||
Id = m.Id,
|
||||
WeekNumber = m.WeekNumber,
|
||||
WeekDefinitionId = m.WeekDefinitionId,
|
||||
WeekDisplayName = m.WeekDisplayName,
|
||||
TotalAmount = m.TotalAmount,
|
||||
Status = m.Status,
|
||||
WithdrawalMethod = m.WithdrawalMethod, // int? type - no .Value needed
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@ public class GetUserWithdrawalsResponseDto
|
||||
public class UserWithdrawalModel
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public string WeekNumber { get; set; } = string.Empty;
|
||||
public long WeekDefinitionId { get; set; }
|
||||
public string WeekDisplayName { get; set; } = string.Empty;
|
||||
public long TotalAmount { get; set; }
|
||||
public int Status { get; set; }
|
||||
public int? WithdrawalMethod { get; set; }
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Afrino.PYMSMicroservice.Protobuf" Version="0.0.11" />
|
||||
<!-- <PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.155" /> -->
|
||||
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.156" />
|
||||
<PackageReference Include="Google.Protobuf" Version="3.33.0" />
|
||||
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.54.0" />
|
||||
<PackageReference Include="Grpc.Tools" Version="2.76.0">
|
||||
@@ -16,9 +16,9 @@
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Direct project reference to local CMS Protobuf for development -->
|
||||
<ProjectReference Include="../../../CMS/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj" />
|
||||
</ItemGroup>
|
||||
<!-- <ItemGroup>-->
|
||||
<!-- <!– Direct project reference to local CMS Protobuf for development –>-->
|
||||
<!-- <ProjectReference Include="../../../CMS/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj" />-->
|
||||
<!-- </ItemGroup>-->
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyCommissionPayouts;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using ProtoDto = FrontOffice.BFF.Commission.Protobuf.Protos.Commission;
|
||||
|
||||
@@ -13,13 +14,13 @@ public class CommissionProfile : IRegister
|
||||
config.NewConfig<ProtoDto.GetMyCommissionPayoutsRequest, GetMyCommissionPayoutsQuery>()
|
||||
.Map(dest => dest.PageNumber, src => src.PageNumber)
|
||||
.Map(dest => dest.PageSize, src => src.PageSize)
|
||||
.Map(dest => dest.WeekNumber, src => src.WeekNumber)
|
||||
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId != null ? (long?)src.WeekDefinitionId.Value : null)
|
||||
.Map(dest => dest.Status, src => src.Status);
|
||||
|
||||
config.NewConfig<ProtoDto.GetMyWeeklyBalancesRequest, GetMyWeeklyBalancesQuery>()
|
||||
.Map(dest => dest.PageNumber, src => src.PageNumber)
|
||||
.Map(dest => dest.PageSize, src => src.PageSize)
|
||||
.Map(dest => dest.WeekNumber, src => src.WeekNumber)
|
||||
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId != null ? (long?)src.WeekDefinitionId.Value : null)
|
||||
.Map(dest => dest.OnlyActive, src => src.OnlyActive);
|
||||
|
||||
// Response mappings
|
||||
@@ -29,8 +30,8 @@ public class CommissionProfile : IRegister
|
||||
|
||||
config.NewConfig<CommissionPayoutDto, ProtoDto.CommissionPayoutModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.WeekNumber, src => src.WeekNumber)
|
||||
.Map(dest => dest.WeekLabel, src => src.WeekLabel)
|
||||
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId)
|
||||
.Map(dest => dest.WeekDisplayName, src => src.WeekDisplayName)
|
||||
.Map(dest => dest.BalancesEarned, src => src.BalancesEarned)
|
||||
.Map(dest => dest.TotalAmount, src => src.TotalAmount)
|
||||
.Map(dest => dest.AmountFormatted, src => src.AmountFormatted)
|
||||
@@ -48,12 +49,38 @@ public class CommissionProfile : IRegister
|
||||
|
||||
config.NewConfig<WeeklyBalanceItemDto, ProtoDto.WeeklyBalanceModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.WeekNumber, src => src.WeekNumber)
|
||||
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId)
|
||||
.Map(dest => dest.WeekDisplayName, src => src.WeekLabel)
|
||||
.Map(dest => dest.LeftLegBalances, src => src.LeftLegBalances)
|
||||
.Map(dest => dest.RightLegBalances, src => src.RightLegBalances)
|
||||
.Map(dest => dest.TotalBalances, src => src.TotalBalances)
|
||||
.Map(dest => dest.WeeklyPoolContribution, src => src.WeeklyPoolContribution)
|
||||
.Map(dest => dest.IsExpired, src => src.IsExpired)
|
||||
.Map(dest => dest.DatePersian, src => src.DatePersian);
|
||||
|
||||
// GetWeekDefinitions mappings
|
||||
config.NewConfig<ProtoDto.GetWeekDefinitionsRequest, GetWeekDefinitionsQuery>()
|
||||
.Map(dest => dest.SearchText, src => src.SearchText)
|
||||
.Map(dest => dest.PageNumber, src => src.PageNumber > 0 ? src.PageNumber : 1)
|
||||
.Map(dest => dest.PageSize, src => src.PageSize > 0 ? src.PageSize : 100)
|
||||
.Map(dest => dest.GregorianYear, src => src.GregorianYear)
|
||||
.Map(dest => dest.PersianYear, src => src.PersianYear)
|
||||
.Map(dest => dest.IsActive, src => src.IsActive);
|
||||
|
||||
config.NewConfig<GetWeekDefinitionsResponseDto, ProtoDto.GetWeekDefinitionsResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.Data, src => src.Data);
|
||||
config.NewConfig<WeekDefinitionDto, ProtoDto.WeekDefinitionModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.WeekOrder, src => src.WeekOrder)
|
||||
.Map(dest => dest.DisplayName, src => src.DisplayName)
|
||||
.Map(dest => dest.StartDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.StartDate, DateTimeKind.Utc)))
|
||||
.Map(dest => dest.EndDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.EndDate, DateTimeKind.Utc)))
|
||||
.Map(dest => dest.GregorianYear, src => src.GregorianYear)
|
||||
.Map(dest => dest.PersianYear, src => src.PersianYear)
|
||||
.Map(dest => dest.IsActive, src => src.IsActive)
|
||||
.Map(dest => dest.IsCurrentWeek, src => src.IsCurrentWeek)
|
||||
.Map(dest => dest.StartDatePersian, src => src.StartDatePersian)
|
||||
.Map(dest => dest.EndDatePersian, src => src.EndDatePersian);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class NetworkMembershipProfile : IRegister
|
||||
.Map(dest => dest.IsActive, src => src.IsActive)
|
||||
.Map(dest => dest.JoinedAt, src => src.JoinedAt.HasValue ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.JoinedAt.Value, DateTimeKind.Utc)) : null)
|
||||
.Map(dest => dest.IsClubActive, src => src.IsClubActive)
|
||||
.Map(dest => dest.ActivationWeekNumber, src => src.ActivationWeekNumber);
|
||||
.Map(dest => dest.ActivationWeekDefinitionId, src => src.ActivationWeekDefinitionId);
|
||||
|
||||
// Response mappings - Statistics
|
||||
config.NewConfig<GetMyNetworkStatisticsResponseDto, ProtoDto.GetMyNetworkStatisticsResponse>()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyCommissionPayouts;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
||||
using FrontOffice.BFF.Commission.Protobuf.Protos.Commission;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
@@ -32,4 +33,12 @@ public class CommissionService : CommissionContract.CommissionContractBase
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyWeeklyBalancesRequest, GetMyWeeklyBalancesQuery, GetMyWeeklyBalancesResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست هفتهها برای dropdown
|
||||
/// </summary>
|
||||
public override async Task<GetWeekDefinitionsResponse> GetWeekDefinitions(GetWeekDefinitionsRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetWeekDefinitionsRequest, GetWeekDefinitionsQuery, GetWeekDefinitionsResponse>(request, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
}
|
||||
},
|
||||
"GrpcChannelOptions": {
|
||||
// "CMSMSAddress": "http://cms-svc",
|
||||
"CMSMSAddress": "http://cms-svc",
|
||||
// "CMSMSAddress": "https://cms.foursat.afrino.co",
|
||||
"CMSMSAddress": "https://localhost:32846/",
|
||||
// "CMSMSAddress": "https://localhost:32846/",
|
||||
"PYMSMSAddress": "https://ipg.afrino.co"
|
||||
},
|
||||
"CmsSignalR": {
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.13</Version>
|
||||
<Version>0.0.14</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.Category.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.1</Version>
|
||||
<Version>0.0.2</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.City.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.3</Version>
|
||||
<Version>0.0.4</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.ClubMembership.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.2</Version>
|
||||
<Version>0.0.3</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.Commission.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
@@ -25,6 +25,13 @@ service CommissionContract
|
||||
get: "/Commission/MyWeeklyBalances"
|
||||
};
|
||||
};
|
||||
|
||||
// دریافت لیست هفتهها برای dropdown
|
||||
rpc GetWeekDefinitions(GetWeekDefinitionsRequest) returns (GetWeekDefinitionsResponse){
|
||||
option (google.api.http) = {
|
||||
get: "/Commission/WeekDefinitions"
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
// ============ MetaData ============
|
||||
@@ -38,7 +45,7 @@ message GetMyCommissionPayoutsRequest
|
||||
{
|
||||
int32 page_number = 1;
|
||||
int32 page_size = 2;
|
||||
google.protobuf.StringValue week_number = 3;
|
||||
google.protobuf.Int64Value week_definition_id = 3;
|
||||
google.protobuf.Int32Value status = 4; // 0=Pending, 1=Calculated, 2=Paid, 3=Withdrawn
|
||||
}
|
||||
|
||||
@@ -51,8 +58,8 @@ message GetMyCommissionPayoutsResponse
|
||||
message CommissionPayoutModel
|
||||
{
|
||||
int64 id = 1;
|
||||
string week_number = 2;
|
||||
string week_label = 3;
|
||||
int64 week_definition_id = 2;
|
||||
string week_display_name = 3;
|
||||
int32 balances_earned = 4;
|
||||
int64 total_amount = 5;
|
||||
string amount_formatted = 6;
|
||||
@@ -67,7 +74,7 @@ message GetMyWeeklyBalancesRequest
|
||||
{
|
||||
int32 page_number = 1;
|
||||
int32 page_size = 2;
|
||||
google.protobuf.StringValue week_number = 3;
|
||||
google.protobuf.Int64Value week_definition_id = 3;
|
||||
bool only_active = 4;
|
||||
}
|
||||
|
||||
@@ -83,12 +90,51 @@ message GetMyWeeklyBalancesResponse
|
||||
message WeeklyBalanceModel
|
||||
{
|
||||
int64 id = 1;
|
||||
string week_number = 2;
|
||||
int32 left_leg_balances = 3;
|
||||
int32 right_leg_balances = 4;
|
||||
int32 total_balances = 5;
|
||||
int64 weekly_pool_contribution = 6;
|
||||
bool is_expired = 7;
|
||||
google.protobuf.Timestamp calculated_at = 8;
|
||||
string date_persian = 9;
|
||||
int64 week_definition_id = 2;
|
||||
string week_display_name = 3;
|
||||
int32 left_leg_balances = 4;
|
||||
int32 right_leg_balances = 5;
|
||||
int32 total_balances = 6;
|
||||
int64 weekly_pool_contribution = 7;
|
||||
bool is_expired = 8;
|
||||
google.protobuf.Timestamp calculated_at = 9;
|
||||
string date_persian = 10;
|
||||
}
|
||||
|
||||
// ============ GetWeekDefinitions ============
|
||||
message GetWeekDefinitionsRequest
|
||||
{
|
||||
//جستجوی متنی روی DisplayName
|
||||
google.protobuf.StringValue search_text = 1;
|
||||
//شماره صفحه
|
||||
int32 page_number = 2;
|
||||
//تعداد در صفحه
|
||||
int32 page_size = 3;
|
||||
//سال میلادی
|
||||
google.protobuf.Int32Value gregorian_year = 4;
|
||||
//سال شمسی
|
||||
google.protobuf.Int32Value persian_year = 5;
|
||||
//فقط هفتههای فعال
|
||||
google.protobuf.BoolValue is_active = 6;
|
||||
}
|
||||
|
||||
message GetWeekDefinitionsResponse
|
||||
{
|
||||
repeated WeekDefinitionModel data = 1;
|
||||
int32 total_count = 2;
|
||||
}
|
||||
|
||||
message WeekDefinitionModel
|
||||
{
|
||||
int64 id = 1;
|
||||
int32 week_order = 2;
|
||||
string display_name = 3;
|
||||
google.protobuf.Timestamp start_date = 4;
|
||||
google.protobuf.Timestamp end_date = 5;
|
||||
int32 gregorian_year = 6;
|
||||
int32 persian_year = 7;
|
||||
bool is_active = 8;
|
||||
bool is_current_week = 9;
|
||||
string start_date_persian = 10;
|
||||
string end_date_persian = 11;
|
||||
}
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.1</Version>
|
||||
<Version>0.0.2</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.2</Version>
|
||||
<Version>0.0.3</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.DiscountShop.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.2</Version>
|
||||
<Version>0.0.4</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.NetworkMembership.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ message NetworkNodeModel
|
||||
bool is_active = 10;
|
||||
google.protobuf.Timestamp joined_at = 11;
|
||||
bool is_club_active = 12;
|
||||
google.protobuf.StringValue activation_week_number = 13;
|
||||
google.protobuf.Int64Value activation_week_definition_id = 13;
|
||||
}
|
||||
|
||||
// ============ GetMyNetworkStatistics ============
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.113</Version>
|
||||
<Version>0.0.114</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.17</Version>
|
||||
<Version>0.0.18</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.Products.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.16</Version>
|
||||
<Version>0.0.17</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.ShopingCart.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.112</Version>
|
||||
<Version>0.0.113</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.117</Version>
|
||||
<Version>0.0.118</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.115</Version>
|
||||
<Version>0.0.116</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.115</Version>
|
||||
<Version>0.0.116</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.15</Version>
|
||||
<Version>0.0.16</Version>
|
||||
<PackageId>Foursat.FrontOffice.BFF.UserWallet.Protobuf</PackageId>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
|
||||
@@ -95,12 +95,13 @@ message GetUserWithdrawalsResponse
|
||||
message UserWithdrawalModel
|
||||
{
|
||||
int64 id = 1;
|
||||
string week_number = 2;
|
||||
int64 total_amount = 3;
|
||||
int32 status = 4;
|
||||
google.protobuf.Int32Value withdrawal_method = 5;
|
||||
string iban_number = 6;
|
||||
google.protobuf.Timestamp created = 7;
|
||||
int64 week_definition_id = 2;
|
||||
string week_display_name = 3;
|
||||
int64 total_amount = 4;
|
||||
int32 status = 5;
|
||||
google.protobuf.Int32Value withdrawal_method = 6;
|
||||
string iban_number = 7;
|
||||
google.protobuf.Timestamp created = 8;
|
||||
}
|
||||
|
||||
message GetWithdrawalSettingsResponse
|
||||
|
||||
Reference in New Issue
Block a user