package com.persagy.dmp.digital.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.persagy.dmp.common.model.entity.AuditableEntity;
import lombok.*;

import java.util.Set;

/**
 * 
 * @TableName relation_project_cal
 */
@TableName(value ="dt_relation_project_cal",autoResultMap = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ObjectRelationProjectCal extends AuditableEntity {

    /**
     * 图类型
     */
    @TableField(value = "graph_code")
    private String graphCode;

    /**
     * 关系类型编码
     */
    @TableField(value = "rel_code")
    private String relCode;

    /**
     * 关系类型编码名称
     */
    @TableField(value = "rel_code_name")
    private String relCodeName;

    /**
     * 是否需要配置源末端
     */
    @TableField(value = "source_flag")
    private Boolean sourceFlag;

    /**
     * 是否自动计算类型
     */
    @TableField(value = "automatic_flag")
    private Boolean automaticFlag;

    /**
     * 手动计算类型 1 禁用  2提示引导 3手动维护
     */
    @TableField(value = "manual")
    private Integer manual;

    /**
     * 集团编码
     */
    @TableField(value = "group_code")
    private String groupCode;

    /**
     * 项目id
     */
    @TableField(value = "project_id")
    private String projectId;

    /**
     * 最后一次自动计算时间
     */
    @TableField(value = "computing_time")
    private String computingTime;

    /**
     * 计算状态 1初始状态 2需要计算 3计算中 4等待中 5计算失败（如果处于计算中状态，则不再次调用）
     */
    @TableField(value = "computational_state")
    private Integer computationalState;

    /**
     * 业务分区类型
     */
    @TableField(value = "zone_type")
    private String zoneType;

    /**
     * 风系统1,水系统0
     */
    @TableField(value = "system_type")
    private String systemType;

    /**
     * 手动计算关系类型
     */
    @TableField(value = "rel_manual_type")
    private String relManualType;

    /**
     * 计算版本
     */
    @TableField(value = "compute_version")
    private Integer computeVersion;

    /**
     * 机电系统类型
     */
    @TableField(value = "mep_system_type",typeHandler = JacksonTypeHandler.class)
    private Set<String> mepSystemType;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}