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

namespace Grand.Web.Admin.Interfaces
{
    public interface ICustomerAttributeViewModelService
    {
        Task<IEnumerable<CustomerAttributeModel>> PrepareCustomerAttributes();
        CustomerAttributeModel PrepareCustomerAttributeModel();
        CustomerAttributeModel PrepareCustomerAttributeModel(CustomerAttribute customerAttribute);
        Task<CustomerAttribute> InsertCustomerAttributeModel(CustomerAttributeModel model);
        Task<CustomerAttribute> UpdateCustomerAttributeModel(CustomerAttributeModel model, CustomerAttribute customerAttribute);
        Task DeleteCustomerAttribute(string id);
        Task DeleteCustomerAttributeValue(CustomerAttributeValueModel model);
        Task<IEnumerable<CustomerAttributeValueModel>> PrepareCustomerAttributeValues(string customerAttributeId);
        CustomerAttributeValueModel PrepareCustomerAttributeValueModel(string customerAttributeId);
        Task<CustomerAttributeValue> InsertCustomerAttributeValueModel(CustomerAttributeValueModel model);
        CustomerAttributeValueModel PrepareCustomerAttributeValueModel(CustomerAttributeValue customerAttributeValue);
        Task<CustomerAttributeValue> UpdateCustomerAttributeValueModel(CustomerAttributeValueModel model, CustomerAttributeValue customerAttributeValue);
    }
}
