package com.ankaibei.workFlow.common.flow.model;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * @author
 * @version 1.0
 * @description:项目表
 * @date 2022/9/14 11:01
 */
@Entity
@Table(name = "project_info", schema = "ankaibei")
public class ProjectInfoEntityOfFlow {
    private Integer projectId;
    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 项目阶段
     */
    private String projectStage;
    /**
     * 项目状态
     */
    private String projectStatus;
    /**
     * 项目类型
     */
    private String projectType;
    /**
     * 关联客户
     */
    private String relevanceClient;
    /**
     * 项目金额
     */
    private String peojectMoney;
    /**
     * 人员成本
     */
    private BigDecimal staffCost;
    /**
     * 项目费用
     */
    private BigDecimal projectCost;
    /**
     * 总成本
     */
    private BigDecimal totalCost;
    /**
     * 客户联系人信息
     */
    private String linkmanPhone;
    /**
     * 项目负责人
     */
    private String projectPrincipal;
    /**
     * 项目节点
     */
    private String projectNode;
    /**
     * 描述
     */
    private String projectDescribe;
    /**
     * 立项时间
     */
    private Date createDate;

    @Id
    @Column(name = "project_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getProjectId() {
        return projectId;
    }

    public void setProjectId(Integer projectId) {
        this.projectId = projectId;
    }

    @Basic
    @Column(name = "project_name")
    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    @Basic
    @Column(name = "project_stage")
    public String getProjectStage() {
        return projectStage;
    }

    public void setProjectStage(String projectStage) {
        this.projectStage = projectStage;
    }

    @Basic
    @Column(name = "project_status")
    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    @Basic
    @Column(name = "project_type")
    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    @Basic
    @Column(name = "relevance_client")
    public String getRelevanceClient() {
        return relevanceClient;
    }

    public void setRelevanceClient(String relevanceClient) {
        this.relevanceClient = relevanceClient;
    }

    @Basic
    @Column(name = "peoject_money")
    public String getPeojectMoney() {
        return peojectMoney;
    }

    public void setPeojectMoney(String peojectMoney) {
        this.peojectMoney = peojectMoney;
    }

    @Basic
    @Column(name = "staff_cost")
    public BigDecimal getStaffCost() {
        return staffCost;
    }

    public void setStaffCost(BigDecimal staffCost) {
        this.staffCost = staffCost;
    }

    @Basic
    @Column(name = "project_cost")
    public BigDecimal getProjectCost() {
        return projectCost;
    }

    public void setProjectCost(BigDecimal projectCost) {
        this.projectCost = projectCost;
    }

    @Basic
    @Column(name = "total_cost")
    public BigDecimal getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(BigDecimal totalCost) {
        this.totalCost = totalCost;
    }

    @Basic
    @Column(name = "linkman_phone")
    public String getLinkmanPhone() {
        return linkmanPhone;
    }

    public void setLinkmanPhone(String linkmanPhone) {
        this.linkmanPhone = linkmanPhone;
    }

    @Basic
    @Column(name = "project_principal")
    public String getProjectPrincipal() {
        return projectPrincipal;
    }

    public void setProjectPrincipal(String projectPrincipal) {
        this.projectPrincipal = projectPrincipal;
    }

    @Basic
    @Column(name = "project_node")
    public String getProjectNode() {
        return projectNode;
    }

    public void setProjectNode(String projectNode) {
        this.projectNode = projectNode;
    }

    @Basic
    @Column(name = "project_describe")
    public String getProjectDescribe() {
        return projectDescribe;
    }

    public void setProjectDescribe(String projectDescribe) {
        this.projectDescribe = projectDescribe;
    }

    @Basic
    @Column(name = "create_date")
    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        ProjectInfoEntityOfFlow that = (ProjectInfoEntityOfFlow) o;
        return projectId.equals(that.projectId) && Objects.equals(projectName, that.projectName) && Objects.equals(projectStage, that.projectStage) && Objects.equals(projectStatus, that.projectStatus) && Objects.equals(projectType, that.projectType) && Objects.equals(relevanceClient, that.relevanceClient) && Objects.equals(peojectMoney, that.peojectMoney) && Objects.equals(staffCost, that.staffCost) && Objects.equals(projectCost, that.projectCost) && Objects.equals(totalCost, that.totalCost) && Objects.equals(linkmanPhone, that.linkmanPhone) && Objects.equals(projectPrincipal, that.projectPrincipal) && Objects.equals(projectNode, that.projectNode) && Objects.equals(projectDescribe, that.projectDescribe) && Objects.equals(createDate, that.createDate);
    }

    @Override
    public int hashCode() {
        return Objects.hash(projectId, projectName, projectStage, projectStatus, projectType, relevanceClient, peojectMoney, staffCost, projectCost, totalCost, linkmanPhone, projectPrincipal, projectNode, projectDescribe, createDate);
    }
}
