using Ropin.Inspection.Model.Entities;
using Ropin.Inspection.Model.SearchModel;
using Ropin.Inspection.Model.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ropin.Inspection.Repository.Interface
{
    public interface ITispSpotUserRepository : IRepositoryBase<TISP_SpotUser>, IRepositoryBaseById<TISP_SpotUser, Guid>
    {
        Task<IEnumerable<TispSpotUserViewModel>> GetBySpotIdAsync(Guid spotId);
        Task<IEnumerable<TispUserStoreRouteSpotViewModel>> GetByUserIdAsync(Guid userId);
        Task<IEnumerable<TispSpotUserViewModel>> GetAsyncByPage(int pageSize, int pageIndex);
        Task<IEnumerable<TispSpotUsersViewModel>> GetGroupBySpotAsyncByPage(int pageSize, int pageIndex);
        Task<PageData<TispSpotUsersViewModel>> GetGroupBySpotAsyncByPage(TispSpotUserSearchModel searchViewModel);
        Task<int> DeleteBySpotIdAsync(Guid spotId);
        Task<int> DeleteByUserIdAsync(Guid userId);
        Task<int> GetBySpotIdAndUserIdAsync(Guid spotId, Guid userId);
    }
}