package org.dromara.web.domain.bo;

import com.google.type.Decimal;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.web.domain.NutritionSetting;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 营养设定业务对象 nutrition_setting
 *
 * @author Lion Li
 * @date 2025-07-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = NutritionSetting.class, reverseConvertGenerate = false)
public class NutritionSettingBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 所需热量
     */
    private BigDecimal caloriesKcalPerDay;

    /**
     * 所需热量
     */
    private BigDecimal caloriesKcalPerKgDay;

    /**
     * 所需热量
     */
    private BigDecimal caloriesKjPerDay;

    /**
     * 蛋白质热量占比
     */
    private BigDecimal proteinCaloriePercentage;

    /**
     * 脂肪热量占比
     */
    private BigDecimal fatCaloriePercentage;

    /**
     * 碳水化合物热量占比
     */
    private BigDecimal carbohydrateCaloriePercentage;

    /**
     * 所需蛋白质
     */
    private BigDecimal proteinGPerKgDay;

    /**
     * 所需蛋白质
     */
    private BigDecimal proteinGPerDay;

    /**
     * 所需脂肪
     */
    private BigDecimal fatGPerKgDay;

    /**
     * 所需脂肪
     */
    private BigDecimal fatGPerDay;

    /**
     * 所需碳水化合物
     */
    private BigDecimal carbohydrateGPerKgDay;

    /**
     * 所需碳水化合物
     */
    private BigDecimal carbohydrateGPerDay;

    /**
     * 钙
     */
    private BigDecimal calcium;

    /**
     * 钾
     */
    private BigDecimal potassium;

    /**
     * 钠
     */
    private BigDecimal sodium;

    /**
     * 镁
     */
    private BigDecimal magnesium;

    /**
     * 磷
     */
    private BigDecimal phosphorus;

    /**
     * 氯
     */
    private BigDecimal chloride;

    /**
     * 铁
     */
    private BigDecimal iron;

    /**
     * 硒
     */
    private BigDecimal selenium;

    /**
     * 锰
     */
    private BigDecimal manganese;

    /**
     * 氟
     */
    private BigDecimal fluoride;

    /**
     * 钼
     */
    private BigDecimal molybdenum;

    /**
     * 锌
     */
    private BigDecimal zinc;

    /**
     * 铜
     */
    private BigDecimal copper;

    /**
     * 碘
     */
    private BigDecimal iodine;

    /**
     * 铬
     */
    private BigDecimal chromium;

    /**
     * 维生素A
     */
    private BigDecimal vitaminA;

    /**
     * 维生素D
     */
    private BigDecimal vitaminD;

    /**
     * 维生素E
     */
    private BigDecimal vitaminE;

    /**
     * 维生素K
     */
    private BigDecimal vitaminK;

    /**
     * 维生素B1
     */
    private BigDecimal vitaminBOne;

    /**
     * 维生素B2
     */
    private BigDecimal vitaminBTwo;

    /**
     * 维生素B6
     */
    private BigDecimal vitaminBSix;

    /**
     * 维生素B12
     */
    private BigDecimal vitaminBTwelve;

    /**
     * 烟酸（尼克酸）
     */
    private BigDecimal niacin;

    /**
     * 维生素C
     */
    private BigDecimal vitaminC;

    /**
     * 叶酸
     */
    private BigDecimal folicAcid;

    /**
     * 胆碱
     */
    private BigDecimal choline;

    /**
     * 生物素
     */
    private BigDecimal biotin;

    /**
     * 泛酸
     */
    private BigDecimal pantothenicAcid;

    /**
     * 膳食纤维
     */
    private BigDecimal dietaryFiber;

    /**
     * 设定方式
     */
    private String settingType;

    /**
     * 患者id
     */
    private Long patientId;

    /**
     * 看诊类型
     */
    private String type;

    /**
     * 科室
     */
    private Long deptId;

    /**
     * 门诊号
     */
    private String outpatientNo;

    /**
     * 身高
     */
    private BigDecimal height;


    /**
     * 体重
     */
    private BigDecimal weight;


    /**
     * 体力活动
     */
    private Integer activity;


    /**
     * 应激状态
     */
    private Integer stressType;


    /**
     * 上臀围
     */
    private BigDecimal highHip;

    /**
     * 下臀围
     */
    private BigDecimal lowHip;

    /*燃烧面积*/
    private BigDecimal burnArea;

    private String gender;

    private String age;

    private List<Date> dateRange;


}
