package com.writeoff.module.project.dto;

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

public class CreateProjectRequest {
    @NotBlank(message = "项目名称不能为空")
    private String name;
    private Long parentProjectId;
    private LocalDate startDate;
    private LocalDate endDate;
    @NotNull(message = "项目预算不能为空")
    @Min(value = 1, message = "项目预算必须大于0")
    private Long budgetCent;
    @NotNull(message = "会议总期数不能为空")
    @Min(value = 1, message = "会议总期数必须大于0")
    private Integer meetingTotal;
    private Long partnerEnterpriseId;
    private Boolean allowMeetingOverBudget;
    private Double overBudgetThresholdRatio;
    private String overBudgetApprovalChainJson;

    private Double laborFeeRatio;
    private Boolean allowProjectOverBudget;
    private String invoiceInfo;
    private String expenseRatioJson;
    private String projectFeeJson;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getParentProjectId() {
        return parentProjectId;
    }

    public void setParentProjectId(Long parentProjectId) {
        this.parentProjectId = parentProjectId;
    }

    public LocalDate getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDate startDate) {
        this.startDate = startDate;
    }

    public LocalDate getEndDate() {
        return endDate;
    }

    public void setEndDate(LocalDate endDate) {
        this.endDate = endDate;
    }

    public Long getBudgetCent() {
        return budgetCent;
    }

    public void setBudgetCent(Long budgetCent) {
        this.budgetCent = budgetCent;
    }

    public Integer getMeetingTotal() {
        return meetingTotal;
    }

    public void setMeetingTotal(Integer meetingTotal) {
        this.meetingTotal = meetingTotal;
    }

    public Long getPartnerEnterpriseId() {
        return partnerEnterpriseId;
    }

    public void setPartnerEnterpriseId(Long partnerEnterpriseId) {
        this.partnerEnterpriseId = partnerEnterpriseId;
    }

    public Boolean getAllowMeetingOverBudget() {
        return allowMeetingOverBudget;
    }

    public void setAllowMeetingOverBudget(Boolean allowMeetingOverBudget) {
        this.allowMeetingOverBudget = allowMeetingOverBudget;
    }

    public Double getOverBudgetThresholdRatio() {
        return overBudgetThresholdRatio;
    }

    public void setOverBudgetThresholdRatio(Double overBudgetThresholdRatio) {
        this.overBudgetThresholdRatio = overBudgetThresholdRatio;
    }

    public String getOverBudgetApprovalChainJson() {
        return overBudgetApprovalChainJson;
    }

    public void setOverBudgetApprovalChainJson(String overBudgetApprovalChainJson) {
        this.overBudgetApprovalChainJson = overBudgetApprovalChainJson;
    }



    public Double getLaborFeeRatio() {
        return laborFeeRatio;
    }

    public void setLaborFeeRatio(Double laborFeeRatio) {
        this.laborFeeRatio = laborFeeRatio;
    }

    public Boolean getAllowProjectOverBudget() {
        return allowProjectOverBudget;
    }

    public void setAllowProjectOverBudget(Boolean allowProjectOverBudget) {
        this.allowProjectOverBudget = allowProjectOverBudget;
    }

    public String getInvoiceInfo() {
        return invoiceInfo;
    }

    public void setInvoiceInfo(String invoiceInfo) {
        this.invoiceInfo = invoiceInfo;
    }

    public String getExpenseRatioJson() {
        return expenseRatioJson;
    }

    public void setExpenseRatioJson(String expenseRatioJson) {
        this.expenseRatioJson = expenseRatioJson;
    }

    public String getProjectFeeJson() {
        return projectFeeJson;
    }

    public void setProjectFeeJson(String projectFeeJson) {
        this.projectFeeJson = projectFeeJson;
    }

}
