using FrontOffice.BFF.WebApi.Common.Services;
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetDiscountProducts;
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetDiscountCategories;
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetMyDiscountCart;
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetMyDiscountOrders;
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.AddToDiscountCart;
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.RemoveFromDiscountCart;
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.PlaceDiscountOrder;
using FrontOffice.BFF.DiscountShop.Protobuf.Protos.DiscountShop;
namespace FrontOffice.BFF.WebApi.Services;
///
/// سرویس فروشگاه تخفیفی - برای کاربران عضو باشگاه
///
public class DiscountShopService : DiscountShopContract.DiscountShopContractBase
{
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
public DiscountShopService(IDispatchRequestToCQRS dispatchRequestToCQRS)
{
_dispatchRequestToCQRS = dispatchRequestToCQRS;
}
///
/// دریافت لیست محصولات تخفیفی
///
public override async Task GetDiscountProducts(GetDiscountProductsRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
///
/// دریافت دستهبندیهای فروشگاه تخفیفی
///
public override async Task GetDiscountCategories(GetDiscountCategoriesRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
///
/// دریافت سبد خرید تخفیفی کاربر جاری
///
public override async Task GetMyDiscountCart(Empty request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(context);
}
///
/// افزودن محصول به سبد خرید تخفیفی
///
public override async Task AddToDiscountCart(AddToDiscountCartRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
///
/// حذف محصول از سبد خرید تخفیفی
///
public override async Task RemoveFromDiscountCart(RemoveFromDiscountCartRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
///
/// دریافت لیست سفارشات تخفیفی کاربر جاری
///
public override async Task GetMyDiscountOrders(GetMyDiscountOrdersRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
///
/// ثبت سفارش تخفیفی
///
public override async Task PlaceDiscountOrder(PlaceDiscountOrderRequest request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle(request, context);
}
}