package com.cf.imes.module.executor.controller.admin.veneer.vo;

import com.cf.imes.module.executor.validation.veneer.VeneerDimensionRangeValid;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.List;

/**
 * 未排贴皮板件数据查询参数。
 */
@Data
public class UnplannedVeneerPlateDataReqVO {

    @Schema(description = "订单ID列表，与板材商品编码列表互斥")
    private List<Long> orderIds;

    @Schema(description = "板材商品编码列表，与订单ID列表互斥")
    private List<String> goodsIds;

    @Schema(description = "房间ID列表")
    private List<Long> roomIds;

    @Schema(description = "柜体ID列表")
    private List<Long> bodyIds;

    @Schema(description = "贴皮编号")
    @Length(max = 64, message = "{veneer.unplanned.plate.query.veneerNo.length.max}")
    private String veneerNo;

    @Schema(description = "板件编号")
    @Length(max = 64, message = "{veneer.unplanned.plate.query.plateNo.length.max}")
    private String plateNo;

    @Schema(description = "贴皮商品编号")
    @Length(max = 32, message = "{veneer.unplanned.plate.query.sourceVeneerNo.length.max}")
    private String sourceVeneerNo;

    @Schema(description = "贴皮材质")
    @Length(max = 64, message = "{veneer.unplanned.plate.query.material.length.max}")
    private String material;

    @Schema(description = "贴皮颜色")
    @Length(max = 32, message = "{veneer.unplanned.plate.query.color.length.max}")
    private String color;

    @Schema(description = "板名称")
    @Length(max = 64, message = "{veneer.unplanned.plate.query.plateName.length.max}")
    private String plateName;

    @Schema(description = "长度范围(mm)，依次为最小值、最大值")
    @VeneerDimensionRangeValid(message = "{veneer.unplanned.plate.query.length.range.invalid}")
    private BigDecimal[] length;

    @Schema(description = "宽度范围(mm)，依次为最小值、最大值")
    @VeneerDimensionRangeValid(message = "{veneer.unplanned.plate.query.width.range.invalid}")
    private BigDecimal[] width;

    @Schema(description = "厚度范围(mm)，依次为最小值、最大值")
    @VeneerDimensionRangeValid(message = "{veneer.unplanned.plate.query.thickness.range.invalid}")
    private BigDecimal[] thickness;
}
