package com.aegis.resource.procurement.dto;

import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 采购明细数据传输对象（DTO）
 * 用于 API 层的数据传输
 *
 * @author aegis
 */
@Getter
@Setter
@ToString
public class ProcurementItemDTO {

    private Long id;

    /** 采购申请ID */
    @NotNull(message = "采购申请ID不能为空")
    private Long procurementId;

    /** 分类：material-物资，equipment-装备 */
    @NotBlank(message = "分类不能为空")
    @Size(min = 0, max = 16, message = "分类长度不能超过16个字符")
    private String category;

    /** 规格描述 */
    @Size(min = 0, max = 500, message = "规格描述长度不能超过500个字符")
    private String spec;

    /** 数量 */
    @NotNull(message = "数量不能为空")
    private BigDecimal qty;

    /** 单位 */
    @Size(min = 0, max = 16, message = "单位长度不能超过16个字符")
    private String unit;

    /** 是否可重复使用：0-否，1-是 */
    private Integer isReusable;

    /** 目标物资ID（入库时关联） */
    private Long targetMaterialId;

    /** 目标物资名称（关联查询） */
    private String targetMaterialName;

    /** 备注 */
    @Size(min = 0, max = 500, message = "备注长度不能超过500个字符")
    private String remark;
}