using OASystem.Domain.Dtos.SmallFun;
using OASystem.Domain.ViewModels.JuHeExchangeRate;

namespace OASystem.API.OAMethodLib.JuHeAPI
{
    /// <summary>
    /// 聚合Api 服务
    /// </summary>
    public interface IJuHeApiService
    {
        /// <summary>
        /// 获取汇率
        /// </summary>
        /// <returns></returns>
        Task<JuHeAPIResult> GetExchangeRateAsync();

        /// <summary>
        /// 获取汇率 Single
        /// </summary>
        /// <param name="currencyCode">币种code</param>
        /// <returns></returns>
        Task<Result> GetSingleRateAsync(string currencyCode);

        /// <summary>
        /// 获取汇率 Item
        /// </summary>
        /// <returns></returns>
        Task<List<ExchangeRateModel>> PostItemRateAsync(string[] currencyCodes);

        /// <summary>
        /// 获取汇率转换结果
        /// </summary>
        /// <returns></returns>
        Task<Result> GetExchangeRateAsync(ExchangeRateDto dto);


        /// <summary>
        /// 文本翻译
        /// </summary>
        /// <param name="source">原文,数据类型为字符串,也可为数组(元素必须为字符串类型);每次请求的字符串长度之和尽量不要超过 </param>
        /// <param name="trans_type">翻译方向:en2zh(英文-中文),zh2en(中文-英文),ja2zh(日文-中文),zh2ja(中文-日文),ko2zh(韩文-中文),zh2ko(中文-韩文)</param>
        /// <returns></returns>
        /// <returns></returns>
        Task<string> GetTextTranslateAsync(string source, string trans_type = "zh2en");

        /// <summary>
        /// 获取全球当前时间
        /// </summary>
        /// <param name="continent">
        /// 洲际:非洲、美洲、南极洲、北极、亚洲、大西洋、 欧洲、太平洋
        /// <returns></returns>
        Task<JuHeAPIResult> GetContinentTimezoneAsync(string continent);

    }
}