using Ropin.Inspection.Model;
using Ropin.Inspection.Service.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace Ropin.Inspection.Service
{
    public interface ITpntStoreService : IBaseService<TpntStoreViewModel>, IBaseServiceById<TpntStoreViewModel, Guid>
    {
        Task<IEnumerable<TpntStoreViewModel>> GetAllAsync();
        Task<IEnumerable<TpntStoreViewModel>> GetByConditionAsync(Expression<Func<TpntStoreViewModel, bool>> expression);
        Task UpdateAsync(Guid id, TpntStoreUpdateModel updateModel);
        Task<IEnumerable<TpntStoreViewModel>> GetConditionAsync(TpntStoreSearchModel searchModel);
        Task<IList<TpntTypeViewModel>> GetAllPntType();
        Task CreateStoreByOrgAsync(Guid orgCode, TpntStoreCreateModel viewModel);
        Task AllotStoreByOrgAsync(Guid orgCode, Guid storeCode);
        Task<TpntStoreViewModel> GetStoreByCodeAsync(string code);
    }
}