package cn.iocoder.yudao.module.smartfactory.controller.admin.packagedata.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 打包线数据 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PackageDataRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000078")
    @ExcelProperty("工厂编号")
    private Long factoryId;

    @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "新景象")
    @ExcelProperty("工厂名称")
    private String factoryName;

    @Schema(description = "打包线id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12")
    private Long packageId;

    @Schema(description = "打包线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1线")
    @ExcelProperty("打包线名称")
    private String packageName;

    @Schema(description = "规格编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long sizeId;

    @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "300*300")
    @ExcelProperty("规格名称")
    private String sizeName;

    @Schema(description = "规格片数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("规格片数")
    private Integer sizePieces;

    @Schema(description = "设备名称", example = "三星")
    @ExcelProperty("设备名称")
    private String deviceName;

    @Schema(description = "打包日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    @ExcelProperty("打包日期")
    private LocalDate packageDate;

    @Schema(description = "手动打包数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("手动打包数量")
    private Integer num;

    @Schema(description = "自动打包数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("自动打包数量")
    private Integer autoNum;

    @Schema(description = "平方数", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("平方数")
    private BigDecimal squareNum;

    @Schema(description = "破损数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("破损数量")
    private Integer damageNum;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
}