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 22:02:15
 */
@Data
@Table("schisandra_oss_baidu")
public class SchisandraOssBaidu 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("access_key_id")
    private String accessKeyId;

    /**
     * 
     */
    @Column("secret_access_key")
    private String secretAccessKey;

    /**
     * 使用cname访问BOS资源
     */
    @Column("cname_enabled")
    private String cnameEnabled;

    /**
     * 异步put
     */
    @Column("enable_http_async_put")
    private String enableHttpAsyncPut;

    /**
     * 建立连接的超时时间（单位：毫秒）
     */
    @Column("connection_timeout_in_millis")
    private Integer connectionTimeoutInMillis;

    /**
     * 允许打开的最大HTTP连接数
     */
    @Column("max_connections")
    private Integer maxConnections;

    /**
     * 连接协议类型
     */
    @Column("protocol")
    private String protocol;

    /**
     * 访问NTLM验证的代理服务器的Windows域名
     */
    @Column("proxy_domain")
    private String proxyDomain;

    /**
     * 代理服务器主机地址
     */
    @Column("proxy_host")
    private String proxyHost;

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

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

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

    /**
     * NTLM代理服务器的Windows工作站名称
     */
    @Column("proxy_workstation")
    private String proxyWorkstation;

    /**
     * 是否设置用户代理认证
     */
    @Column("proxy_preemptive_authentication_enable")
    private String proxyPreemptiveAuthenticationEnable;

    /**
     * 通过打开的连接传输数据的超时时间（单位：毫秒）
     */
    @Column("socket_timeout_in_millis")
    private Integer socketTimeoutInMillis;

    /**
     * Socket缓冲区大小
     */
    @Column("socket_buffer_sizeIn_bytes")
    private Integer socketBufferSizeInBytes;

    /**
     * 访问域名
     */
    @Column("endpoint")
    private String endpoint;

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

    /**
     * 是否开启HTTP重定向。默认开启
     */
    @Column("redirects_enabled")
    private String redirectsEnabled;

    /**
     * 本地地址
     */
    @Column("local_address")
    private String localAddress;

    /**
     * 请求失败最大重试次数
     */
    @Column("max_error_retry")
    private Integer maxErrorRetry;

    /**
     * 最大延迟时间，单位：毫秒
     */
    @Column("max_delay_in_millis")
    private Integer maxDelayInMillis;

    /**
     * 流文件缓冲区大小
     */
    @Column("stream_buffer_size")
    private Double streamBufferSize;

    /**
     * 用户代理，指HTTP的User-Agent头
     */
    @Column("user_agent")
    private String userAgent;

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

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

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

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

    /**
     * 创建人
     */
    @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("extra_json")
    private String extraJson;

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

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

}

