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 ITmtnPushMsgToService : IBaseService<TmtnPushMsgToViewModel>, IBaseServiceById<TmtnPushMsgToViewModel, Guid>
    {
        Task<IEnumerable<TmtnPushMsgToViewModel>> GetAllAsync();
        Task<IEnumerable<TmtnPushMsgToViewModel>> GetByConditionAsync(Expression<Func<TmtnPushMsgToViewModel, bool>> expression);
        Task UpdateAsync(string code, TmtnPushMsgToUpdateModel updateModel);
        Task<IEnumerable<TmtnPushMsgToViewModel>> GetConditionAsync(TmtnPushMsgToSearchModel searchModel);
        Task DeleteAsync(string code);
        Task CreatePushMsgToListAsync(IEnumerable<TmtnPushMsgToViewModel> viewModelList);
        Task CreatePushMsgToHaveListAsync(TmtnPushMsgToListCreateModel content);
        Task<IEnumerable<TmtnPushMsgToUserViewModel>> GetPushMsgToUsersByAsync(string devStoreCode);
        Task<TmtnUserPushMsgToViewModel> GetPushMsgTosByAsync(string devStoreCode, string userCode);
        Task<bool> PushAlarmMsgAsync(TpushMsgModel pushModel);
        Task<bool> DeleteByDevPersonIdAsync(TmtnPushMsgToListDelete model);
    }
}