using System;
using System.ComponentModel.DataAnnotations;
using YBDevice.Entity;

namespace YBDevice.NApi.Application.ThirdOpen
{
    /// <summary>
    /// 两电极/四电极结果计算
    /// </summary>
    public class BodyCalcC2SDto
    {
        /// <summary>
        /// 体重,单位KG
        /// </summary>
        [Range(1, 200, ErrorMessage = "体重只能在10-200公斤之间")]
        public decimal Weight { get; set; }

        /// <summary>
        /// 身高,单位厘米
        /// </summary>
        [Range(10, 250, ErrorMessage = "身高只能在10-200厘米之间")]
        public decimal Height { get; set; }

        /// <summary>
        /// 年龄,岁
        /// </summary>
        [Range(0, 100, ErrorMessage = "年龄只能在0-100岁之间")]
        public int Age { get; set; }

        /// <summary>
        /// 阻抗值
        /// </summary>
        [Range(0, 1000, ErrorMessage = "阻抗值只能在0-1000之间")]
        public int adc { get; set; }

        /// <summary>
        /// 性别,1-男,2-女
        /// </summary>
        public GenderType sex { get; set; }
    }

    /// <summary>
    /// 八电极结果结算
    /// </summary>
    public class Body120CalcC2SDto
    {
        /// <summary>
        /// 体重,单位KG
        /// </summary>
        [Range(1, 200, ErrorMessage = "体重只能在10-200公斤之间")]
        public decimal Weight { get; set; }

        /// <summary>
        /// 身高,单位厘米
        /// </summary>
        [Range(10, 250, ErrorMessage = "身高只能在10-200厘米之间")]
        public decimal Height { get; set; }

        /// <summary>
        /// 年龄,岁
        /// </summary>
        [Range(0, 100, ErrorMessage = "年龄只能在0-100岁之间")]
        public int Age { get; set; }

        /// <summary>
        /// 左手阻抗
        /// </summary>
        public decimal lefthand { get; set; }

        /// <summary>
        /// 右手阻抗
        /// </summary>
        public decimal righthand { get; set; }

        /// <summary>
        /// 左手阻抗
        /// </summary>
        public decimal leftfoot { get; set; }

        /// <summary>
        /// 右脚阻抗
        /// </summary>
        public decimal rightfoot { get; set; }

        /// <summary>
        /// 全身阻抗
        /// </summary>
        public decimal body { get; set; }

        /// <summary>
        /// 性别,1-男,2-女
        /// </summary>
        public GenderType sex { get; set; }
    }

    /// <summary>
    /// 转发给第三方的数据
    /// </summary>
    public class BodyPostBodyS2SDto
    {
        /// <summary>
        /// 体重,单位KG
        /// </summary>
        public decimal Weight { get; set; }

        /// <summary>
        /// 身高,单位厘米
        /// </summary>
        public decimal Height { get; set; }

        /// <summary>
        /// 年龄,岁
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 阻抗值
        /// </summary>
        public int adc { get; set; }
    }

    /// <summary>
    /// 两电极/四电极结果返回值
    /// </summary>
    public class BodyCalcS2CDto
    {
        /// <summary>
        /// 脂肪率
        /// </summary>
        public decimal fat_r { get; set; } = 0;

        /// <summary>
        /// 肌肉率
        /// </summary>
        public decimal muscle { get; set; } = 0;

        /// <summary>
        /// 水份
        /// </summary>
        public decimal water { get; set; } = 0;

        /// <summary>
        /// 骨重
        /// </summary>
        public decimal bone { get; set; } = 0;

        /// <summary>
        /// 基础代谢
        /// </summary>
        public decimal kcal { get; set; } = 0;

        /// <summary>
        /// 脂肪重量
        /// </summary>
        public decimal fat_w { get; set; } = 0;

        /// <summary>
        /// 内脂
        /// </summary>
        public decimal visceral { get; set; } = 0;

        /// <summary>
        /// 蛋白质
        /// </summary>
        public decimal protein { get; set; } = 0;

        /// <summary>
        /// 体龄
        /// </summary>
        public int bodyage { get; set; } = 0;

        /// <summary>
        /// BMI
        /// </summary>
        public decimal bmi { get; set; } = 0;

        /// <summary>
        /// 分数
        /// </summary>
        public decimal cmi { get; set; } = 0;

        /// <summary>
        /// 皮下脂肪率,%
        /// </summary>
        public decimal sfr { get; set; } = 0;

        /// <summary>
        /// 皮下脂肪量,KG
        /// </summary>
        public decimal sfrval { get; set; } = 0;

        /// <summary>
        /// 骨骼肌量,kg
        /// </summary>
        public decimal skeletalmuscle { get; set; } = 0;

        /// <summary>
        /// 肌肉量
        /// </summary>
        public decimal muscleval { get; set; } = 0;

        /// <summary>
        /// 蛋白量
        /// </summary>
        public decimal proteinval { get; set; } = 0;

        /// <summary>
        /// 去脂体重
        /// </summary>
        public decimal lbm { get; set; } = 0;

        /// <summary>
        /// 体重
        /// </summary>
        public decimal weight { get; set; } = 0;

        /// <summary>
        /// 身高
        /// </summary>
        public decimal height { get; set; } = 0;

        /// <summary>
        /// 标准体重
        /// </summary>
        public string standardWeight { get; set; } = "";

        /// <summary>
        /// 脂肪率标准
        /// </summary>
        public string fat_rLevel { get; set; } = "";

        /// <summary>
        /// 肌肉率标准
        /// </summary>
        public string muscleLevel { get; set; } = "";

        /// <summary>
        /// 水份标准
        /// </summary>
        public string waterLevel { get; set; } = "";

        /// <summary>
        /// 骨量标准
        /// </summary>
        public string boneLevel { get; set; } = "";

        /// <summary>
        /// 基础代谢标准
        /// </summary>
        public string kcalLevel { get; set; } = "";

        /// <summary>
        /// 脂肪重量标准
        /// </summary>
        public string fat_wLevel { get; set; } = "";

        /// <summary>
        /// 内脂等级
        /// </summary>
        public string visceralLevel { get; set; } = "";

        /// <summary>
        /// 蛋白率标准
        /// </summary>
        public string proteinLevel { get; set; } = "";

        /// <summary>
        /// 体龄标准
        /// </summary>
        public string bodyageLevel { get; set; } = "";

        /// <summary>
        /// bmi标准
        /// </summary>
        public string bmiLevel { get; set; } = "";

        /// <summary>
        /// 肌肉量标准,和肌肉率一致
        /// </summary>
        public string musulevalLevel { get; set; } = "";

        /// <summary>
        /// 蛋白量标准,和蛋白率一致
        /// </summary>
        public string proteinvalLevel { get; set; } = "";

        /// <summary>
        /// 皮下脂肪标准
        /// </summary>
        public string sfrLevel { get; set; } = "";

        /// <summary>
        /// 体型标准
        /// </summary>
        public string bodylevel { get; set; } = "";

        /// <summary>
        /// 肥胖等级标准
        /// </summary>
        public string fatLevel { get; set; } = "";
    }
}