package cn.iocoder.yudao.module.identity.controller.admin.code.vo;

import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;

@ApiModel("管理后台 - 标识码分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CodePageReqVO extends PageParam {

    @ApiModelProperty(value = "生码记录id")
    private String generateRecordId;

    @ApiModelProperty(value = "二维码url ")
    private String identityCode;

    @ApiModelProperty(value = "校验码（明暗码需要）")
    private String verfiyCode;

    @ApiModelProperty(value = "码规则id")
    private Long ruleId;

    @ApiModelProperty(value = "码规则")
    private String codeRuleFormat;

    @ApiModelProperty(value = "码类型 0普通码 1明暗码")
    private Integer codeType;

    @ApiModelProperty(value = "字符长度")
    private Integer charLength;

    @ApiModelProperty(value = "字符类型 0纯数字  1纯字母  2混合类型")
    private Integer charType;

    @ApiModelProperty(value = "相关批次ID")
    private String batchId;

    @ApiModelProperty(value = "批次类型： 0：采收批次")
    private Integer batchType;

    @ApiModelProperty(value = "商品id")
    private String goodsId;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "经销商名称")
    private String dealerName;

    @ApiModelProperty(value = "经销商id")
    private String dealerId;

    @ApiModelProperty(value = "所属商户id")
    private Long belongBusinessId;

    @ApiModelProperty(value = "所属商户名称")
    private String belongBusinessName;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] createTime;

    @ApiModelProperty(value = "扫码次数统计")
    private Integer scanCount;

    @ApiModelProperty(value = "最多可追溯统计次数")
    private Integer limitCount;

    @ApiModelProperty(value = "状态0：未启动 1：启动", required = true)
    private Integer status;

}
