package easydo.technology.model;

import easydo.technology.annotation.NotTableField;
import easydo.technology.annotations.ZSFContainer;
import easydo.technology.annotations.ZSFContainers;
import easydo.technology.annotations.ZSFLinkField;
import easydo.technology.core.ZeroSpringFolder;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@ZSFContainers({
        @ZSFContainer(directory = "purchase/apply", maxLimit = 10)
})
public class Purchase extends ZeroSpringFolder<Purchase> {
    @ZSFLinkField
    private String id;
    private String planId;
    private String planName;
    private String name;
    private Long deptId;
    private String type;
    private Boolean isInPlan;
    private BigDecimal budgetAmount;
    private String fundSource;
    private String projectNo;
    private Long projectId;
    private String suggestion;
    private String purchaseNo;
    private String director;
    private String method;
    private String approveResult;
    private String createTime;
    private String createName;
    private Long createId;
    private String status;
    private String step;
    private String purchaseType;
    private Long belongDeptId;
    private Integer isShare;
    private String endTime;
    private Boolean isHaveContract;


    private String processState;
    private String processTaskId;
    private String processInstanceId;
    private String processTemplateId;

    @NotTableField
    private List<PurchaseContract> contractList;
    @NotTableField
    private PurchaseBidNotice bidNotice;
    @NotTableField
    private PurchaseBidSign bidSign;
    @NotTableField
    private PurchaseMatter matter;
    @NotTableField
    private PurchaseAnswerSign answerSign;
    @NotTableField
    private PurchasePlan plan;
    @NotTableField
    private String templateId;
    @NotTableField
    private Integer oaStatus;
}
