package cn.ey.biz.module.system.dal.dataobject.category;

import cn.ey.biz.framework.mybatis.core.dataobject.BaseDO;
import cn.ey.biz.module.system.api.category.dto.DictCatalogDTO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.util.List;

/**
 * 字典分类数据 DO
 */
@TableName("system_category_data")
@KeySequence("system_category_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CategoryDataDO extends BaseDO {

    /**
     * 主键
     */
    @TableId("data_id")
    private Long id;

    /**
     * 编码唯一值
     */
    @TableField("data_identifier")
    private String dataIdentifier;

    /**
     * 父级节点
     */
    @TableField("data_pid")
    private Long pid;

    /**
     * 父级节点唯一值
     */
    @TableField("data_parent_identifier")
    private String dataParentIdentifier;
    /**
     * 分类编码
     */
    private String categoryCode;
    /**
     * 编码
     */
    @TableField("data_code")
    private String code;
    /**
     * 名称
     */
    @TableField("data_name")
    private String name;
    /**
     * 字段值
     */
    @TableField("data_value")
    private String value;
    /**
     * 是否有子节点
     */
    private Integer hasChildren;
    /**
     * 状态（0正常 1停用）
     */
    @TableField("data_status")
    private Integer status;
    /**
     * 备注
     */
    @TableField("data_remark")
    private String remark;

    /**
     * 分类版本号
     */
    private Long categoryVersion;

    /**
     * 值版本号
     */
    private Long dataVersion;

    /**
     * 是否最新版本  0  否 1 是
     */
    private Integer newVersion;

    /**
     * 排序码
     */
    private Integer sort;

    /**
     * 批量导入用
     */
    @TableField(exist = false)
    private List<DictCatalogDTO.Lang> langs;
}
