using MWS.Model;
using MWS.Model.Dto;
using MWS.Model.Model;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace MWS.Data.InterFace
{
    public interface ITag : IDapperHelper
    {
        List<AlertTagModel> GetAlertTags(bool? isLinkedContactor = null);
        List<DeviceTagDto> GetDeviceTagsForGroup();
        Task<List<T_DeviceTag>> GetModels(string keyword, short deviceId, short? componentId = null, short? mecType = null, string sortingProperty = "Id", bool ascending = false);
        List<Device> GetPagingModels(string keyword, short deviceId, short? componentId, short? mecType, out int totalCount, int pageIndex = 1, int pageSize = 20, string sortingProperty = "Id", bool ascending = false);
        List<int> GetValueTags();
        List<T_DeviceTag> GetTagsByWhere(int deviceId = 0, short mecType = 0);
        List<T_DeviceTag> GetTagsByDataType(int deviceId = 0, short dataType = 0);
        List<T_DeviceTag> GetTagsByPlc(int deviceId = 0, short plcLocation = 0);

        List<T_DeviceTag> GetTagsByKeyWord(string keyWord="",int deviceId = 0);
        T_DeviceTag GetTagsByTagId( int tagId);
    }
}
