using JiaZhiQuan.Common.Models.PO;
using JiaZhiQuan.Common.Models.VO.BalanceManage;
using JiaZhiQuan.Common.Models.VO.CreatorCenter;
using JiaZhiQuan.Common.Utils;
using Mapster;

namespace JiaZhiQuan.Common.Mapster
{
    public static class BuildTypeAdapterConfig
    {
        /// <summary>
        /// ContentRewardVO => ContentRewardResultVO
        /// 奖励金额（分为单位） => 奖励金额（元为单位）
        /// </summary>
        public static TypeAdapterConfig BuildContentRewardVOConfig()
        {
            TypeAdapterConfig config = new TypeAdapterConfig();
            config.ForType<ContentRewardVO, ContentRewardResultVO>()
                  // 奖励金额（分为单位） => 奖励金额（元为单位）
                  .Map(dest => dest.amount, src => AmountUtils.ConvertCentToYuanStr(src.amount));
            return config;
        }

        /// <summary>
        /// ContentRewardVO => ContentRewardResultVO
        /// 奖励金额（分为单位） => 奖励金额（元为单位）
        /// </summary>
        public static TypeAdapterConfig BuildBalanceCashoutPlatformVOConfig()
        {
            TypeAdapterConfig config = new TypeAdapterConfig();
            config.ForType<BalanceCashoutPlatformPO, BalanceCashoutPlatformVO>()
                  // 税率百分比
                  .Map(dest => dest.taxRate, src => src.taxRate * 100)
                  // 服务费率百分比
                  .Map(dest => dest.feeRate, src => src.feeRate * 100)
                  // 最少服务费金额（分为单位） => 最少服务费金额（元为单位）
                  .Map(dest => dest.feeMinAmount, src => AmountUtils.ConvertCentToYuan((decimal)src.feeMinAmount));
            return config;
        }
    }

}
