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-08-27
 */
@Getter
@Setter
@TableName("biz_db_config")
public class DbConfig implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 数据库配置唯一标识
     */
    @TableId(value = "db_id", type = IdType.AUTO)
    private String dbId;

    /**
     * 数据库类型（如mysql、oracle、postgresql等）
     */
    @TableField("db_type")
    private String dbType;

    /**
     * 数据库名称
     */
    @TableField("db_name")
    private String dbName;

    /**
     * 数据库默认Schema（PostgresSQL特有，如public、ods、dw等，为空时默认用public）
     */
    @TableField("db_schema")
    private String dbSchema;

    /**
     * 数据库主机地址
     */
    @TableField("db_host")
    private String dbHost;

    /**
     * 数据库端口号
     */
    @TableField("db_port")
    private Integer dbPort;

    /**
     * 数据库登录用户名
     */
    @TableField("link_username")
    private String linkUsername;

    /**
     * 数据库登录密码
     */
    @TableField("link_password")
    private String linkPassword;

    /**
     * 数据库驱动类全路径
     */
    @TableField("driver_class")
    private String driverClass;

    /**
     * 数据库连接URL模板
     */
    @TableField("url_template")
    private String urlTemplate;

    /**
     * 是否激活（可用状态标识）
     */
    @TableField("is_active")
    private String isActive;

    /**
     * 记录最后更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 租户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;
}
