package com.schisandra.oss.infra.basic.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 腾讯云对象存储配置表 实体类
 *
 * @author landaiqing
 * @since 2024-06-02 21:38:56
 */
@Data
@Table("schisandra_oss_tencent")
public class SchisandraOssTencent implements Serializable {

    /**
     *
     */
    @Id(value = "id", keyType = KeyType.Auto)
    private Long id;

    /**
     *
     */
    @Column("user_id")
    private Long userId;

    /**
     *
     */
    @Column("base_path")
    private String basePath;

    /**
     *
     */
    @Column("bucket_name")
    private String bucketName;

    /**
     *
     */
    @Column("secret_id")
    private String secretId;

    /**
     *
     */
    @Column("secret_key")
    private String secretKey;

    /**
     * 地域
     */
    @Column("region")
    private String region;

    /**
     * 连接OSS所采用的协议（HTTP或HTTPS），默认为HTTPS。
     */
    @Column("http_protocol")
    private String httpProtocol;

    /**
     * 域名后缀
     */
    @Column("end_point_suffix")
    private String endPointSuffix;

    /**
     * http proxy代理，如果使用http proxy代理，需要设置IP与端口
     */
    @Column("http_proxy_Ip")
    private String httpProxyIp;

    /**
     * 代理服务器端口
     */
    @Column("http_proxy_port")
    private Integer httpProxyPort;

    /**
     * 代理服务器验证的用户名。
     */
    @Column("proxy_user_name")
    private String proxyUserName;

    /**
     * 代理服务器验证的密码。
     */
    @Column("proxy_password")
    private String proxyPassword;

    /**
     * 是否使用基本身份验证
     */
    @Column("use_basic_auth")
    private String useBasicAuth;

    /**
     * 多次签名的过期时间,单位秒
     */
    @Column("sign_expired")
    private Long signExpired;

    /**
     * 获取连接的超时时间, 单位ms
     */
    @Column("connection_request_timeout")
    private Integer connectionRequestTimeout;

    /**
     * 默认连接超时, 单位ms
     */
    @Column("connection_timeout")
    private Integer connectionTimeout;

    /**
     * SOCKET读取超时时间, 单位ms
     */
    @Column("socket_timeout")
    private Integer socketTimeout;

    /**
     * 最大HTTP连接数
     */
    @Column("max_connections_count")
    private Integer maxConnectionsCount;

    /**
     * 空闲连接存活时间
     */
    @Column("idle_connection_alive")
    private Integer idleConnectionAlive;

    /**
     * user_agent标识
     */
    @Column("user_agent")
    private String userAgent;

    /**
     * 读取限制
     */
    @Column("read_limit")
    private String readLimit;

    /**
     * 数据万象特殊请求配置
     */
    @Column("ci_special_request")
    private String ciSpecialRequest;

    /**
     * 请求失败后最大的重试次数。默认3次。
     */
    @Column("max_error_retry")
    private Integer maxErrorRetry;

    /**
     * 额外json
     */
    @Column("extra_json")
    private String extraJson;

    /**
     * 状态
     */
    @Column("status")
    private String status;

    /**
     * 创建人
     */
    @Column("created_by")
    private String createdBy;

    /**
     * 创建时间
     */
    @Column("created_time")
    private Date createdTime;

    /**
     * 更新时间
     */
    @Column("update_time")
    private Date updateTime;

    /**
     * 更新人
     */
    @Column("update_by")
    private String updateBy;

    /**
     * 是否删除 0 未删除 1已删除
     */
    @Column(value = "is_deleted",isLogicDelete = true)
    private Integer isDeleted;

    /**
     * 是否开启高级设置
     */
    @Column("open_advanced_setup")
    private String openAdvancedSetup;

    /**
     * 当桶不存在，是否创建
     */
    @Column("create_bucket")
    private String createBucket;

    /**
     * 启动检测桶，是否存在
     */
    @Column("check_bucket")
    private String checkBucket;

    /**
     * 分片大小,默认5MB
     */
    @Column("part_size")
    private Long partSize;

    /**
     * 并发线程数,默认等于CPU的核数
     */
    @Column("task_num")
    private Integer taskNum;

}

