package com.bonus.canteen.core.menu.domain;

import com.bonus.canteen.core.menu.dto.MenuMaterialNutritionDTO;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

import java.util.List;

/**
 * 商家食材原料信息对象 menu_material
 *
 * @author xsheng
 * @date 2025-04-03
 */


@Data
@ToString
public class MenuMaterial extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 区域id */
    @Excel(name = "区域id")
    @ApiModelProperty(value = "区域id")
    private Long areaId;

    @Excel(name = "区域名称")
    @ApiModelProperty(value = "区域名称")
    private String areaName;

    /** 食材id */
    @Excel(name = "食材id")
    @ApiModelProperty(value = "食材id")
    private Long materialId;

    /** 食材名称 */
    @Excel(name = "食材名称")
    @ApiModelProperty(value = "食材名称")
    private String materialName;

    /** 原料编码 */
    @Excel(name = "原料编码")
    @ApiModelProperty(value = "原料编码")
    private String materialCode;

    /** 拼音首字母 */
    @Excel(name = "拼音首字母")
    @ApiModelProperty(value = "拼音首字母")
    private String pinyinInitials;

    /** 拼音全拼 */
    @Excel(name = "拼音全拼")
    @ApiModelProperty(value = "拼音全拼")
    private String pinyinFull;

    /** 原料图片 */
    @Excel(name = "原料图片")
    @ApiModelProperty(value = "原料图片")
    private String imageUrl;

    /** 营养信息 */
    @Excel(name = "营养信息")
    @ApiModelProperty(value = "营养信息")
    private Long nutritionId;

    @ApiModelProperty(value = "营养信息名称")
    private String nutritionName;

    /** 类别id */
    @Excel(name = "类别id")
    @ApiModelProperty(value = "类别id")
    private Long categoryId;

    /** 类别ids */
    @Excel(name = "类别ids")
    @ApiModelProperty(value = "类别ids")
    private List categoryIdList;

    @Excel(name = "类别名称")
    @ApiModelProperty(value = "类别名称")
    private String categoryName;

    /** 原料类型(1原料2商品) */
    @Excel(name = "原料类型(1原料2商品)")
    @ApiModelProperty(value = "原料类型(1原料2商品)")
    private Long materialType;

    /** 条码 */
    @Excel(name = "条码")
    @ApiModelProperty(value = "条码")
    private String barCode;

    /** 单位 */
    @Excel(name = "单位")
    @ApiModelProperty(value = "单位")
    private Long unitId;

    @Excel(name = "单位名称")
    @ApiModelProperty(value = "单位名称")
    private String unitName;

    /** 销售价 */
    @Excel(name = "销售价")
    @ApiModelProperty(value = "销售价")
    private Long salePrice;

    /** 进价 */
    @Excel(name = "进价")
    @ApiModelProperty(value = "进价")
    private Long unitPrice;

    /** 售卖类型(1计量2散称) */
    @Excel(name = "售卖类型(1计量2散称)")
    @ApiModelProperty(value = "售卖类型(1计量2散称)")
    private Long salesMode;

    /** 预留比例(0-100) */
    @Excel(name = "预留比例(0-100)")
    @ApiModelProperty(value = "预留比例(0-100)")
    private Long reserveRate;

    /** 保质期类型 1年 2月 3日 */
    @Excel(name = "保质期类型 1年 2月 3日")
    @ApiModelProperty(value = "保质期类型 1年 2月 3日")
    private Long shelfLifeType;

    /** 保质期数 */
    @Excel(name = "保质期数")
    @ApiModelProperty(value = "保质期数")
    private Long shelfLifeDays;

    /** 简介 */
    @Excel(name = "简介")
    @ApiModelProperty(value = "简介")
    private String synopsis;

    /** 乐观锁 */
    @Excel(name = "乐观锁")
    @ApiModelProperty(value = "乐观锁")
    private Long revision;

    /** 采购价格上限 */
    @Excel(name = "采购价格上限")
    @ApiModelProperty(value = "采购价格上限")
    private Long purPriceCeiling;

    /** 资格证书 */
    @Excel(name = "资格证书")
    @ApiModelProperty(value = "资格证书")
    private Long certId;

    /** 大类id */
    @Excel(name = "大类id")
    @ApiModelProperty(value = "大类id")
    private Long bigCategoryId;

    /** 规格 */
    @Excel(name = "规格")
    @ApiModelProperty(value = "规格")
    private String size;

    /** 税率 */
    @Excel(name = "税率")
    @ApiModelProperty(value = "税率")
    private Long taxRate;

    /** 禁用状态1启用 2禁用 */
    @Excel(name = "禁用状态1启用 2禁用")
    @ApiModelProperty(value = "禁用状态1启用 2禁用")
    private Long disableStatus;

    /** 转换数量  单位g */
    @Excel(name = "转换数量  单位g")
    @ApiModelProperty(value = "转换数量  单位g")
    private Long convertGrams;

    @ApiModelProperty(value = "营养信息类别")
    private String nutritionType;

    @ApiModelProperty("营养信息")
    private MenuMaterialNutritionDTO menuMaterialNutritionDTO;

}
