package com.ruoyi.brewery.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 啤酒对象 wy_beer
 * 
 * @author ruoyi
 * @date 2024-12-21
 */
@Data
public class WyBeer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    /** 品牌方id */
    @Excel(name = "品牌方id")
    private Long breweryId;

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

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

    /** 品牌logo */
    @Excel(name = "品牌logo")
    private String brandLogo;

    private String fisheyeLogo;

    /** 啤酒编码 */
    @Excel(name = "啤酒编码")
    private String beerSn;

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

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

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

    /** 条码 */
    @Excel(name = "条码")
    private String barcode;

    /** 上架 */
    @Excel(name = "上架")
    private Integer onSale;

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

    /** 市场价 */
    @Excel(name = "市场价")
    private BigDecimal marketPrice;

    /** 规格 */
    @Excel(name = "规格")
    private String specs;

    /** 描述 */
    @Excel(name = "描述")
    private String desc;

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

    /** 上市日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上市日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date launchDate;

    private Integer approval;

    private String approvalReason;

    private String brandName;

    private String breweryLogo;

    private Integer beerReviewsCount;

    private Double beerOverallRating;

    private String materials;

    private String shelfLife;

    private String netContent;

    /** 首次评价币值 */
    private Long firstReviewCoin;

    private Integer scanCount;

    private Integer activityCount;
}
