package com.sckw.system.model.vo.res;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.sckw.core.utils.LongToStringUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 装载作业记录返回对象
 * @author chenxiaofei
 * @date 2026-01-07
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "装载作业记录返回对象")
public class LoadingRecordsResVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 雪花ID
     */
    @JsonSerialize(using = LongToStringUtils.class)
    @Schema(description = "雪花ID")
    private Long id;

    /**
     * 操作员ID
     */
    @JsonSerialize(using = LongToStringUtils.class)
    @Schema(description = "操作员ID")
    private Long operatorId;

    /**
     * 车牌号
     */
    @Schema(description = "车牌号")
    private String licensePlate;

    /**
     * 客户名称
     */
    @Schema(description = "客户名称")
    private String customerName;

    /**
     * 装载类型: 1-装载, 2-补货
     */
    @Schema(description = "装载类型: 1-装载, 2-补货")
    private Integer loadType;

    /**
     * 物料ID
     */
    @JsonSerialize(using = LongToStringUtils.class)
    @Schema(description = "物料ID")
    private Long materialId;

    /**
     * 装载数量/重量
     */
    @Schema(description = "装载数量/重量")
    private BigDecimal quantity;

    /**
     * 作业日期
     */
    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
    @Schema(description = "作业日期")
    private Date workDate;

    /**
     * 记录创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(description = "记录创建时间")
    private Date createdAt;

}


