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

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author xliu
 * @date 2025/4/10 15:44
 */
@Data
public class MenuDishesDTO {

    @ApiModelProperty("基础菜品id)")
    private String baseDishesId;

    @ApiModelProperty("菜品id")
    private String dishesId;

    @ApiModelProperty("类型(1-菜品,2-套餐)")
    private Integer mealType;
    @ApiModelProperty("计价方式(1按份,2称重)")
    private Integer salesMode;

    @ApiModelProperty("规格类型(1-标准,2-大小份)")
    private Integer sizeType;

    @ApiModelProperty("成本价")
    private Integer materialCost;

    @ApiModelProperty("成本价-小份")
    private Integer littleMaterialCost;


    @ApiModelProperty("是否是公共菜品(1-是,2-否,)")
    private Integer publicDishes;


    @ApiModelProperty("结果图转注册图 1 是  2否")
    private Integer convertFlag;

    @ApiModelProperty("训练图数量")
    private Integer trainCount = 15;

    @ApiModelProperty("识别图")
    private Integer identifyCount = 200;

    @ApiModelProperty("区域id")
    private Long areaId;

    @ApiModelProperty("食堂id")
    private Long canteenId;

    @ApiModelProperty("档口id")
    private Long shopstallId;

    @ApiModelProperty("菜品编号")
    private String dishesNum;

    @ApiModelProperty("菜品名称")
    private String dishesName;

    @ApiModelProperty("称重单位(g)")
    private Integer unitPrice;

    @ApiModelProperty("称重单位(g)")
    private Integer price;

    @ApiModelProperty("标准份量")
    private Double weight;

    @ApiModelProperty("质量偏差(g)")
    private Double weightDeviation;

    @ApiModelProperty("菜品图片url")
    private String imageUrl;

    @ApiModelProperty("原材料")
    private @Valid List<MenuDishesAddMaterialDTO> materialList;

    @TableField(value = "crby", fill = FieldFill.INSERT)
    @ApiModelProperty("创建人")
    private String createBy;
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
    @TableField(value = "upby", fill = FieldFill.UPDATE)
    @ApiModelProperty("更新人")
    private String updateBy;
    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("功效")
    private Integer effectId;

    @ApiModelProperty("菜系")
    private Integer styleId;

    @ApiModelProperty("灶类")
    private Integer cookId;

    @ApiModelProperty("菜品类型ID")
    private Long typeId;

    @ApiModelProperty("菜品分类id(自定义)")
    private Integer classifyId;

    @ApiModelProperty("标签id")
    private List<Integer> labelIdList;

    @ApiModelProperty("口味id")
    private @Size( max = 3,message = "口味最多配置3个")
    List<Integer> tasteIdList;

    @ApiModelProperty("季节分类")
    private List<Integer> season;

    @ApiModelProperty("适宜人群")
    private List<Integer> suitIdList;

    @ApiModelProperty("餐次")
    private List<Integer> mealList;

    @ApiModelProperty("菜品简介")
    private String remark;

    private String labelId;
    private String tasteId;
    private String seasonId;
    private String suitId;
    private String mealId;

    private Integer customId;





}
