package org.springblade.modules.investment.pojo.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.modules.investment.pojo.dto.IbaProjectVolumeDTO;

/**
 * 投资效益分析-项目表
 * @TableName iba_project
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value ="iba_project")
@Data
public class IbaProject extends BaseEntity {

    /**
     * 基础信息
     */
    private String projectName;

    /**
     * 类型（下拉选择框）
     */
    private Long type;

    /**
     * 路线类型（下拉选择框）
     */
    private Long routeType;

    /**
     * 项目阶段（下拉选择框）
     */
    private Integer stage;
    /**
     * 项目阶段（下拉选择框） 名称
     */
    @TableField(exist = false)
    private String stageName;

    /**
     * 建设开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date constructStartTime;

    /**
     * 建设结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date constructEndTime;

    /**
     * 运营开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date operationStartTime;

    /**
     * 运营结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date operationEndTime;

    /**
     * 运营公司
     */
    private String operationCompany;

    /**
     * 实际运营里程（公里）
     */
    private Double actualOperatingMileage;

    /**
     * 车道数
     */
    private Integer lane;

    /**
     * 类型名称
     */
    @TableField(exist = false)
    private String typeName;

    /**
     * 路线名称
     */
    @TableField(exist = false)
    private String routeTypeName;


    @TableField(exist = false)
    private Long createDept;

    @TableField(exist = false)
    private Integer status;

    /**
     * 资金信息
     */
    @TableField(exist = false)
    private List<IbaProjectFund> funds;

    /**
     * 车流量数据
     */
    @TableField(exist = false)
    private List<IbaProjectVolumeDTO> list;
}