using ASHermed.SinoInterface.Api.ContractModel;
using ASHermed.SinoInterface.Api.ContractModel.App;
using ASHermed.SinoInterface.Api.ContractModel.Framework.Login;
using ASHermed.SinoInterface.Api.ContractModel.Tencent;
using ASHermed.SinoInterface.ContractModel;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace ASHermed.SinoInterface.IFramework
{
    /// <summary>
    /// 腾讯服务
    /// </summary>
    public interface ITencentOutService
    {
        /// <summary>
        /// 导入用户
        /// </summary>
        void ImportUser(string url, string api, List<(string Name, string FileName, object Value)> dic);
        ImRepBody CreateGroup(string url, string api, List<(string Name, string FileName, object Value)> dic);
        ImRepBody CreateGroup(string url, string api, Dictionary<string, object> dic);
        GroupAddMemberReb AddGroupMember(string url, string api, Dictionary<string, object> dic);
        TencentResponse DeleteGroupMember(string url, string api, Dictionary<string, object> dic);
        string GetCgiAccessToken(string appid, string appsecret);
        CommonResponse SendTemplateMessage(string token, string openId, string templateId, string jumpUrl, string appid, string pagepath, List<TemplateDataObject> data);
        string ResetCgiAccessToken(string appId, string appSecret);

        TencentResponse ForbiddenUser(string url, string apiUrl, Dictionary<string, object> dic);
        TencentMsgRes SendMsgToGroup(string url, string apiUrl, Dictionary<string, object> dic);
        TencentResponse SendSysMsgToGroup(string url, string apiUrl, Dictionary<string, object> dic);
        AddFriendReb FriendAdd(string url, string apiUrl, Dictionary<string, object> dic);

        MsgFriendReb SendFriendMsg(string url, string apiUrl, Dictionary<string, object> dic);

        ImGroup GetGroupMemberInfo(string url, string apiUrl, Dictionary<string, object> dic);
        void SendAtAll(string apiUrl, string jsonObject);
        IMRecord GetIMRecord(string url, string apiUrl, Dictionary<string, object> dic);
    }
}
