2025-12-04 17:29:05 +03:30
|
|
|
using BackOffice.BFF.Application.Common.Interfaces;
|
2025-12-04 03:43:28 +03:30
|
|
|
using BackOffice.BFF.Package.Protobuf.Protos.Package;
|
2025-12-04 17:29:05 +03:30
|
|
|
using CMSMicroservice.Protobuf.Protos.Package;
|
2025-12-04 03:43:28 +03:30
|
|
|
using MediatR;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
|
|
|
|
namespace BackOffice.BFF.Application.PackageCQ.Queries.GetUserPackageStatus;
|
|
|
|
|
|
|
|
|
|
public class GetUserPackageStatusQueryHandler : IRequestHandler<GetUserPackageStatusQuery, GetUserPackageStatusResponse>
|
|
|
|
|
{
|
2025-12-04 17:29:05 +03:30
|
|
|
private readonly IApplicationContractContext _context;
|
2025-12-04 03:43:28 +03:30
|
|
|
private readonly ILogger<GetUserPackageStatusQueryHandler> _logger;
|
|
|
|
|
|
|
|
|
|
public GetUserPackageStatusQueryHandler(
|
2025-12-04 17:29:05 +03:30
|
|
|
IApplicationContractContext context,
|
2025-12-04 03:43:28 +03:30
|
|
|
ILogger<GetUserPackageStatusQueryHandler> logger)
|
|
|
|
|
{
|
2025-12-04 17:29:05 +03:30
|
|
|
_context = context;
|
2025-12-04 03:43:28 +03:30
|
|
|
_logger = logger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task<GetUserPackageStatusResponse> Handle(GetUserPackageStatusQuery request, CancellationToken cancellationToken)
|
|
|
|
|
{
|
2025-12-04 17:29:05 +03:30
|
|
|
var grpcRequest = new GetUserPackageStatusRequest
|
|
|
|
|
{
|
|
|
|
|
UserId = request.UserId
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var response = await _context.Packages.GetUserPackageStatusAsync(grpcRequest, cancellationToken: cancellationToken);
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation("Retrieved package status for user {UserId}", request.UserId);
|
|
|
|
|
|
|
|
|
|
var result = new GetUserPackageStatusResponse
|
|
|
|
|
{
|
|
|
|
|
UserId = response.UserId,
|
|
|
|
|
PackagePurchaseMethod = response.PackagePurchaseMethod,
|
|
|
|
|
HasPurchasedPackage = response.HasPurchasedPackage,
|
|
|
|
|
IsClubMemberActive = response.IsClubMemberActive,
|
|
|
|
|
WalletBalance = response.WalletBalance,
|
|
|
|
|
DiscountBalance = response.DiscountBalance,
|
|
|
|
|
CanActivateClubMembership = response.CanActivateClubMembership
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (response.LastOrderNumber != null)
|
|
|
|
|
{
|
|
|
|
|
result.LastOrderNumber = response.LastOrderNumber;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (response.LastPurchaseDate != null)
|
|
|
|
|
{
|
|
|
|
|
result.LastPurchaseDate = response.LastPurchaseDate;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
2025-12-04 03:43:28 +03:30
|
|
|
}
|
|
|
|
|
}
|