package com.jwipc.inquiry.dto;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * <p>
 *  共享立项基础信息DTO
 * </p>
 *
 * @author Chen Tianshi
 * @since 2025/12/1 11:52
 */
@Data
public class ShareProjectApplyApiDTO {
    /**
     * 业务类型
     */
    @NotBlank(message = "请传入必填字段【业务类型】")
    private String purchasingBusinessType;
    /**
     * 采购申请编码
     */
    @NotBlank(message = "请传入必填字段【采购申请编码】")
    private String billCode;
    /**
     * 公司编码
     */
    @NotBlank(message = "请传入必填字段【公司编码】")
    private String companyCode;
    /**
     * 申请人工号
     */
    @NotBlank(message = "请传入必填字段【申请人工号】")
    private String applyUserCode;
    /**
     * 申请人姓名
     */
    @NotBlank(message = "请传入必填字段【申请人姓名】")
    private String applyUserName;
    /**
     * 申请部门
     */
    @NotBlank(message = "请传入必填字段【申请部门】")
    private String applyDeptName;
    /**
     * 申请时间 yyyy-MM-dd HH:mm:ss
     */
    @NotBlank(message = "请传入必填字段【申请时间】")
    private String applyTimeStr;
    /**
     *采购组
     */
    @NotBlank(message = "请传入必填字段【采购组】")
    private String purchaseGroupCode;

    /**
     * 采购申请类型编码
     */
//    @NotBlank(message = "请传入采购申请类型编码")
    private String applyTypeCode;

    /**
     * 主要用途
     */
    @NotBlank(message = "请传入必填字段【主要用途】")
    private String mainUses;

    /**
     * 采购类别
     */
    private String procureSubclass;

    /**
     * 存放地点
     */
    private String stockPoint;

    /**
     * 申请样品制作项目类型 传编码
     */
    private String applyProjectType;

    /**
     * 模具申请 传编码
     */
    private String modelApply;

    /**
     * 项目所处阶段
     */
    private String projectProcess;

    /**
     * 资产申请单据类型 (fa_asset_apply_mj 模具
     * fa_asset_apply_fmj 非模具
     * （编码区分大小写）)
     */
    private String applyBillType;
    private String projectNo;
    private String projectName;
    /**
     * 币种
     */
    @NotBlank(message = "请传入必填字段【币种】")
    private String currency;

    /**
     * 明细
     */
    @Valid
    @NotEmpty(message = "请传入明细")
    private List<ShareProjectApplyDetailApiDTO> details;
}
