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.Api.IService
{
    /// <summary>
	///
	/// </summary>
	public interface ITencentService
    {
        VideoUserSignResp GetUsersigByPat(int userId);
        string GetKey(string identifier);
        /// <summary>
        /// 创建群组
        /// </summary>
        /// <param name="groupName"></param>
        /// <param name="doc"></param>
        /// <param name="pat"></param>
        /// <param name="aptId"></param>
        /// <param name="helperImId"></param>
        /// <returns></returns>
        ImRepBody CreateTencentGroup(string groupName, string doc, string pat, int aptId, string helperImId);
        /// <summary>
        /// 群组添加人员
        /// </summary>
        /// <param name="groupId"></param>
        /// <param name="IMID"></param>
        /// <returns></returns>
        GroupAddMemberReb AddTencentGroupMember(string groupId, string IMID);
        /// <summary>
        ///
        /// </summary>
        /// <param name="groupId"></param>
        /// <param name="patIMID"></param>
        /// <returns></returns>
        TencentResponse DeleteTencentGroupMember(string groupId, string patIMID);
        TencentResponse ForbiddenUser(string groupId, string patImId, bool isForbidden);
        TencentMsgRes SendMsgToGroup(string groupId, string fromWho, string content);
        TencentMsgRes SendCusMsgToGroup(string groupId, string fromWho, string content);
        TencentResponse SendSysMsgToGroup(string groupId, string content, List<string> toMembers);

        AddFriendReb FriendAdd(string from, List<string> list);
        MsgFriendReb SendFriendMsg(string from, string toWho, string content);
        ImGroup GetGroupById(string groupId);
        void SendAtAll(string groupId, string imid, string content);
        /// <summary>
        /// 普通消息
        /// </summary>
        /// <param name="from"></param>
        /// <param name="toWho"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        MsgFriendReb SendFriendMsgOnly(string from, string toWho, string content);
        IMRecord GetIMRecord(string msgTime, string chatType);
        void GetIMRecordjob();

        WXLoginResb WXLogin(string code, int language);

        int ReadMessage(ReadInfo info);
        int AddMessage(int patId, int userID, int servType, string servId, string content, int messageType);
    }
}
