using Microsoft.AspNetCore.Http;
using Newtonsoft.Json.Linq;
using Tiobon.Core.Common;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;

namespace Tiobon.Core.IServices;

/// <summary>
/// IPayServices
/// </summary>	
public interface ICommonServices : IBaseServices<RootEntityTkey<int>>
{

    /// <summary>
    /// 获取菜单
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    Task<ServiceResult<MenuReturn>> GetMenuAsync(MenuParam param);


    Task<ServiceResult<ModuleReturn>> GetModuleInfoAsync(ModuleParam param);

    Task<ServiceResult<ModuleESSReturn>> GetESSModuleInfoAsync(ModuleParam param);

    Task<ServiceResult<CommonSelect>> GetSelectAsync(string type, string keyWords);

    Task<ServiceResult<QueryExportReturn>> ExportExcelAsync(QueryExport param); 

    Task<ServiceResult<QueryExportReturn>> ImportExcelAsync(IFormFile file, string menuName, int langId, int userId);

    Task<ServiceResult<FlowReturn>> GetFlowInfoAsync(FlowParam param);

    Task<ServiceResult> CommitFlowAsync(FlowCommitParam param);

    Task<Dictionary<String, Object>> getPostCommonAES(JObject param);

    Task<Dictionary<string, object>> getPostCommon(JObject param);

    Task AutoClearLog();
}
