package com.persagy.dmp.codetable.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.persagy.dmp.common.model.entity.AuditableEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 码表数据
 * 业务上数据字典已表示对象类型+信息点，因此此处改用码表命名以区分
 * @author Charlie Yu
 * @date 2021-07-27
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "dt_code_data", autoResultMap = true)
public class CodeTableData extends AuditableEntity {

    /** 项目ID */
    private String projectId;
    /** 类型ID */
    private String typeId;
    /** 类型编码 - 冗余 */
    private String typeCode;
    /** 编码 */
    private String code;
    /** 名称 */
    private String name;
    /** 上级ID */
    private String parentId;
    /** 内部码 */
    private String innerCode;
    /** 扩展属性 */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private ObjectNode extras;
    /** 显示顺序 */
    private Integer showOrder;
    /** 备注 */
    private String remark;
    /** 显示属性 - 下级码表数据 */
    @TableField(exist = false)
    private List<CodeTableData> content;
}
