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 ITispRecordItemRepository : IRepositoryBase<TISP_RecordItem>, IRepositoryBaseById<TISP_RecordItem, Guid>
    {
        Task<int> GetContentAlarmCout(Guid contentId, Guid spotId);
        Task<List<List<TispRecordItemDetailViewModel>>> GetRecordItemsByRecordIdAsync(Guid recordId);
        Task<IEnumerable<TispRecordItemDetailViewModel>> GetRecordsConditionAsync(Guid recordId);
        Task<IEnumerable<TispRecordItemDetailViewModel>> GetRecordItemByIdAsync(Guid id);
        Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecordsAsync(TispRecordAlarmSearchModel searchModel);
        Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecordListAsync(TispRecordAlarmSearchModel searchModel);
        Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecoveryRecordsAsync(TispRecordAlarmSearchModel searchModel);
        Task<int> GetAlarmRecordsCountAsync(TispRecordAlarmSearchModel searchModel);
        Task<int> GetAlarmRecoveryRecordsCountAsync(TispRecordAlarmSearchModel searchModel);
        Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetAlarmRecordsByQRCodeAsync(string QRCode, string storeCode);
        Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetNewRecordByQRCodeAsync(string QRCode, string storeCode);
        Task<IEnumerable<FirePreventionWeekRecordViewModel>> GetFirePreventionWeekRecordAsync(DateTime start, DateTime end, string storeCode);
        Task<IEnumerable<FireFightingFacilitiesWeekRecordViewModel>> GetFireFightingFacilitiesAsync(DateTime start, DateTime end, string storeCode);
        Task<IEnumerable<FireInspectionRecordViewModel>> GetFireInspectionRecordAsync(DateTime start, DateTime end, string storeCode);
        Task<HiddenDangerRectificationAcceptanceFormViewModel> HiddenDangerRectificationAcceptanceForm(DateTime start, DateTime end, string storeCode);
        Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetAlarmRecordsByRecordItemIdAsync(Guid itemId);
        Task<IEnumerable<InspectionWorkOrderModel>> GetInspectionWorkOrderAsync(DateTime start, DateTime end, string storeCode, string devCode);
    }
}