feat: add GetWeekDefinitions RPC and corresponding query handler for week retrieval

This commit is contained in:
masoodafar-web
2025-12-20 03:30:22 +03:30
parent 0cca79ebfe
commit 565a9605dc
37 changed files with 321 additions and 69 deletions
@@ -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);
}
}