package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/***
 *  酒单模板数据对象
 */
@Data
public class BillTemplateDataVO {

    /** 啤酒名称 */
    @NotBlank(message = "啤酒名称不能为空")
    private String beerName;

    /** 封面图 */
    @NotBlank(message = "封面图不能为空")
    private String cover;

    /** 品牌logo */
    @NotBlank(message = "品牌logo不能为空")
    private String brandLogo;

    /** 啤酒编码 */
    @NotBlank(message = "啤酒编码不能为空")
    private String beerSn;

    /** 啤酒风格 */
    @NotBlank(message = "啤酒风格不能为空")
    private String beerStyles;

    /** 酒精度 */
    @NotNull(message = "酒精度不能为空")
    private Double beerAbv;

    /** 苦度值 */
    @NotNull(message = "苦度值不能为空")
    private Double beerIbus;

    /** 条码 */
    @NotBlank(message = "条码不能为空")
    private String barcode;

    /** 原麦汁浓度 */
    @NotNull(message = "原麦汁浓度不能为空")
    private BigDecimal beerOg;

    /** 市场价 */
    @NotNull(message = "市场价不能为空")
    private BigDecimal marketPrice;

    /** 规格 */
    @NotNull(message = "规格不能为空")
    private String specs;

    /** 扫码获得啤酒币数 */
    @Min(value = 1, message = "扫码获得啤酒币数不能小于1")
    private Long scanCoinCount;

    /** 上市日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "上市日期不能为空")
    private Date launchDate;

    /** 品牌名称 */
    @NotBlank(message = "品牌名称不能为空")
    private String brandName;

    /** 评论数 */
    @NotNull(message = "评论数不能为空")
    private Integer beerReviewsCount;

    /** 综合评价得分 */
    @NotNull(message = "综合评价得分不能为空")
    private Double beerOverallRating;
}
