package com.purui.prims.headless.server.persistence.dataobject;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * <p>
 * 指标表
 * </p>
 *
 * @author charlie
 * @since 2024-07-05
 */
@Getter
@Setter
@TableName("pr_metric")
public class MetricDO {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 模型ID
     */
    private Long modelId;

    /**
     * 指标名称
     */
    @TableField("`name`")
    private String name;

    /**
     * 字段名称
     */
    private String bizName;

    /**
     * 业务口径描述
     */
    @TableField("`description`")
    private String description;

    /**
     * 指标状态
     */
    @TableField("`status`")
    private Integer status;

    /**
     * 敏感级别
     */
    private Integer sensitiveLevel;

    /**
     * 指标类型（原子/衍生/复合）
     */
    @TableField("`type`")
    private String type;

    /**
     * 技术口径
     */
    private String typeParams;

    /**
     * 表达式
     */
    private String expr;

    /**
     * 算子/计算逻辑
     */
    private String operations;

    /**
     * 统计周期ID
     */
    private Integer periodId;

    /**
     * 时间维度ID
     */
    private Long dateDimId;

    /**
     * 业务限定ID
     */
    @TableField(value = "`condition_id`", updateStrategy = FieldStrategy.IGNORED)
    private Integer conditionId;

    /**
     * 单位ID
     */
    private Integer unitId;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新时间
     */
    private Date updatedAt;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 数值类型
     */
    private String dataFormatType;

    /**
     * 数值类型参数
     */
    private String dataFormat;

    /**
     * 别名
     */
    private String alias;

    /**
     * 指标分类
     */
    private String classifications;

    /**
     * 派生/下钻维度
     */
    private String relateDimensions;

    /**
     * 扩展信息
     */
    private String ext;

    /**
     * 定义类型
     */
    private String defineType;

    /**
     * 是否发布
     */
    private Integer isPublish;

    /**
     * 发布时间
     */
    private Date publishDate;

    /**
     * 负责人
     */
    private String director;


}
