package com.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 分析过滤条件实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("analysis_filter")
public class AnalysisFilter {

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

    /**
     * 规则ID
     */
    private String ruleId;

    /**
     * 数据源
     */
    private String dataSource;

    /**
     * 数据库名
     */
    private String database;

    /**
     * 表名
     */
    private String tableName;

    /**
     * 表别名
     */
    private String tableAlias;

    /**
     * 列名
     */
    private String columnName;

    /**
     * 列描述
     */
    private String columnDesc;

    /**
     * 数据类型
     */
    private String dataType;

    /**
     * 函数名
     */
    private String fn;

    /**
     * 函数参数
     */
    private Object arguments;

    /**
     * 操作符
     */
    private String operator;

    /**
     * 筛选值
     */
    private Object value;

    /**
     * 基础类型
     */
    private Integer baseType;

    /**
     * 分类ID
     */
    private Integer categoryId;

    /**
     * 创建部门ID
     */
    private Long createDept;

    /**
     * 删除标志：0-正常 1-删除
     */
    @TableLogic
    private String delFlag;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建人ID
     */
    private Long createBy;

    /**
     * 更新人ID
     */
    private Long updateBy;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 关联条件逻辑表ID
     */
    private Integer condId;

    /**
     * 表达式执行顺序号
     */
    private Integer seqNum;
}
