using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Api.SignToken
{
    public interface ISignTokenService
    {
        /// <summary>
        /// 有账号人员人员登录
        /// </summary>
        /// <param name="usercode"></param>
        /// <param name="password"></param>
        /// <param name="weixin"></param>
        /// <param name="weixin_name"></param>
        /// <param name="weixin_img"></param>
        /// <param name="channel"></param>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        Task<string> Wechat_Admin_LoginAsync(string usercode, string password, string weixin, string weixin_name, string weixin_img, int channel = 4, string returnUrl = null);


        /// <summary>
        /// 无账号人员登录
        /// </summary>
        /// <param name="weixin"></param>
        /// <param name="weixin_name"></param>
        /// <param name="weixin_img"></param>
        /// <param name="channel"></param>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        Task<string> Wechat_LoginAsync(string weixin, string weixin_name, string weixin_img, int channel = 4, string returnUrl = null);

        /// <summary>
        /// 获取基本信息
        /// </summary>
        /// <returns></returns>
        string GetInfo();

        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="usercode"></param>
        /// <returns></returns>
        Task<string> GetUserInfoAsync(string usercode);

        /// <summary>
        /// 微信绑定
        /// </summary>
        /// <param name="usercode"></param>
        /// <param name="openid"></param>
        /// <param name="channel"></param>
        /// <returns></returns>
        Task<string> Wechat_BindAsync(string usercode, string openid, int channel = 4);
    }
}
