package com.zjty.inspect.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <h4>Description : 评估报告</h4>
 *
 * @author : czq
 *
 * @Date : 2020-03-05 18:16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "评估报告")
public class AssessmentReport {

    /**
     * 数据的状态
     */
    @ApiModelProperty(value = "数据的状态",example = "1")
    private Integer code;
    /**
     * 单位名称
     */
    private String orgName;
    /**
     * 单位联系方式
     */
    private String orgPhone;

    /**
     * 本地开发单位联系人
     */
    private String localContact;

    /**
     * 本地开发单位联系方式
     */
    private String localPhone;
    /**
     * 系统名称
     */
    private String sysName;

    /**
     * 评估时间
     */
    private Date time = new Date();

    /**
     * 难度系数
     */
    private double difficulty;

    /**
     * 语言
     */
    @ApiModelProperty(value = "语言",example = "1")
    private Integer language;

    /**
     * 项目中所有语言
     */
    @ApiModelProperty(value = "语言",example = "1")
    private List<Integer> languages = new ArrayList<>();

    /**
     * 类型预算 1：适配、2：改造
     */
    @ApiModelProperty(value = "类型预算",example = "2")
    private Integer type;

    /**
     * 架构
     */
    @ApiModelProperty(value = "架构",example = "1")
    private Integer framework;

    /**
     * 预算金额 double
     */
    private String budget;

    /**
     * 原系统规模
     */
    private SysScale sysScale = new SysScale();

    /**
     * 关键技术及替换策略建议
     */
    private TechnologyList technologyList = new TechnologyList();

    /**
     * 基础工作量评估
     */
    private Workload workload = new Workload();

    /**
     * 额外依赖申请
     */
    private Apply apply = new Apply();

    /**
     * 适配难度评估
     */
    private DifficultyAssessment difficultyAssessment = new DifficultyAssessment();

    /**
     * 造价估算
     */
    private ManufacturingCost manufacturingCost = new ManufacturingCost();

}
