using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Service.Inspection.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRaCIS.Core.Application.Service.Inspection.Interface
{
    public interface IInspectionService
    {

        Task<PageOutput<GetDataInspectionOutDto>> GetInspectionData(GetDataInspectionDto dto);

        string AddJsonItem(string json, Dictionary<string, object> keyValues);
        void MapData(dynamic data, dynamic mapData);

        Task<IResponseOutput> VerifySignatureAsync(SignDTO signDTO);

        Task<Guid> AddSignRecordAsync(SignDTO signDTO);

        Task<dynamic> Enforcement(dynamic OptCommand, DataInspectionAddDTO AuditInfo, SignDTO SignInfo, dynamic fun, IResponseOutput? response = null);

        //Task SetEnum(DataInspectionAddDTO Data);


        Task<IResponseOutput> AddInspectionRecordAsync(DataInspectionAddDTO addDto, Guid? signId = null);

        /// <summary>
        /// 批量添加稽查记录
        /// </summary>
        /// <param name="datas"></param>
        /// <returns></returns>
        //Task AddListInspectionRecordAsync(List<DataInspection> datas);
    }
}
