using Grand.Domain.Customers;
using Grand.Web.Admin.Models.Catalog;
using Grand.Web.Admin.Models.Customers;

namespace Grand.Web.Admin.Interfaces
{
    public interface ICustomerGroupViewModelService
    {
        CustomerGroupModel PrepareCustomerGroupModel(CustomerGroup customerGroup);
        CustomerGroupModel PrepareCustomerGroupModel();
        Task<CustomerGroup> InsertCustomerGroupModel(CustomerGroupModel model);
        Task<CustomerGroup> UpdateCustomerGroupModel(CustomerGroup customerGroup, CustomerGroupModel model);
        Task DeleteCustomerGroup(CustomerGroup customerGroup);
        Task<(IList<ProductModel> products, int totalCount)> PrepareProductModel(CustomerGroupProductModel.AddProductModel model, int pageIndex, int pageSize);
        Task<IList<CustomerGroupProductModel>> PrepareCustomerGroupProductModel(string customerGroupId);
        Task<CustomerGroupProductModel.AddProductModel> PrepareProductModel(string customerGroupId);
        Task InsertProductModel(CustomerGroupProductModel.AddProductModel model);
    }
}
