package cn.iocoder.yudao.module.system.controller.admin.assetreceive.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;

@Schema(description = "管理后台 - 资产领用新增/修改 Request VO")
@Data
public class AssetReceiveSaveReqVO {

    @Schema(description = "资产领用表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "领用人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "146")
    @NotNull(message = "领用人的用户编号不能为空")
    private Long userId;

    @Schema(description = "领用人的部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "128")
    @NotNull(message = "领用人的部门编号不能为空")
    private Long deptId;

    @Schema(description = "分配人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "分配人的用户编号不能为空")
    private Long receiveUserId;

    @Schema(description = "资产编号")
    private String assetsNo;

    @Schema(description = "资产名称")
    private String assetsName;

    @Schema(description = "资产类型编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "资产类型编号不能为空")
    private Long assetsTypeId;

    @Schema(description = "资产类型名称")
    private String assetsTypeName;

    @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "数量不能为空")
    private Integer num;

    @Schema(description = "申请日期")
    private LocalDate applyDate;

    @Schema(description = "分配日期")
    private LocalDate allocationDate;

    @Schema(description = "领用状态 | 0待领用 1采购中 2已领用 ", example = "0")
    private Integer status;

    @Schema(description = "附件信息")
    private String fileItems;

}