package com.mini.capi.biz.domain;

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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 数据表字段信息表
 * </p>
 *
 * @author gaoxq
 * @since 2025-11-17
 */
@Getter
@Setter
@TableName("data_table_field")
public class DataTableField implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 字段唯一标识（主键）
     */
    @TableId(value = "field_id", type = IdType.AUTO)
    private String fieldId;

    /**
     * 关联的数据表ID（外键，关联data_table_info.table_id）
     */
    @TableField("table_id")
    private String tableId;

    /**
     * 数据来源
     */
    @TableField("data_source")
    private String dataSource;

    /**
     * 数据表名称
     */
    @TableField("table_name")
    private String tableName;

    /**
     * 字段序号（表示字段在表中的顺序）
     */
    @TableField("field_order")
    private Integer fieldOrder;

    /**
     * 字段类型（如：int、varchar、datetime等）
     */
    @TableField("field_type")
    private String fieldType;

    /**
     * 字段名称
     */
    @TableField("field_name")
    private String fieldName;

    /**
     * 字段长度（如varchar(50)中的50，数值型可表示精度）
     */
    @TableField("field_length")
    private Long fieldLength;

    /**
     * 字段说明
     */
    @TableField("field_remark")
    private String fieldRemark;

    /**
     * 分区日期
     */
    @TableField("ds")
    private String ds;

    /**
     * 租户id
     */
    @TableField("f_tenant_id")
    private String fTenantId;

    /**
     * 流程id
     */
    @TableField("f_flow_id")
    private String fFlowId;

    /**
     * 流程任务主键
     */
    @TableField("f_flow_task_id")
    private String fFlowTaskId;

    /**
     * 流程任务状态
     */
    @TableField("f_flow_state")
    private Integer fFlowState;
}
