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

namespace Grand.Web.Admin.Interfaces
{
    public interface IAddressAttributeViewModelService
    {
        Task<(IEnumerable<AddressAttributeModel> addressAttributes, int totalCount)> PrepareAddressAttributes();
        AddressAttributeModel PrepareAddressAttributeModel();
        AddressAttributeModel PrepareAddressAttributeModel(AddressAttribute addressAttribute);
        Task<AddressAttribute> InsertAddressAttributeModel(AddressAttributeModel model);
        Task<AddressAttribute> UpdateAddressAttributeModel(AddressAttributeModel model, AddressAttribute addressAttribute);
        Task<(IEnumerable<AddressAttributeValueModel> addressAttributeValues, int totalCount)> PrepareAddressAttributeValues(string addressAttributeId);
        AddressAttributeValueModel PrepareAddressAttributeValueModel(string addressAttributeId);
        Task<AddressAttributeValue> InsertAddressAttributeValueModel(AddressAttributeValueModel model);
        AddressAttributeValueModel PrepareAddressAttributeValueModel(AddressAttributeValue addressAttributeValue);
        Task<AddressAttributeValue> UpdateAddressAttributeValueModel(AddressAttributeValueModel model, AddressAttributeValue addressAttributeValue);

    }
}
