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:25:11
 */
@Data
@Table("schisandra_oss_qiniu")
public class SchisandraOssQiniu implements Serializable {

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

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

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

    /**
     * 
     */
    @Column("access_key")
    private String accessKey;

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

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

    /**
     * 使用的Region
     */
    @Column("region")
    private String region;

    /**
     * 空间相关上传管理操作是否使用 https , 默认 是
     */
    @Column("use_https_domains")
    private String useHttpsDomains;

    /**
     * 空间相关上传管理操作是否使用代理加速上传，默认 是
     */
    @Column("acc_up_host_first")
    private String accUpHostFirst;

    /**
     * 使用 AutoRegion 时，如果从区域信息得到上传 host 失败，使用默认的上传域名上传，默认 是upload.qiniup.com,uploadz1.qiniup.com,upload-z2.qiniup.com,upload-na0.qiniup.com,upload-as0.qiniup.com
     */
    @Column("use_default_up_host_if_none")
    private String useDefaultUpHostIfNone;

    /**
     * 如果文件大小大于此值则使用断点上传, 否则使用Form上传
     */
    @Column("put_threshold")
    private String putThreshold;

    /**
     * 连接超时时间 单位秒(默认10s)
     */
    @Column("connect_timeout")
    private Integer connectTimeout;

    /**
     * 写超时时间 单位秒(默认 0 , 不超时)
     */
    @Column("write_timeout")
    private Integer writeTimeout;

    /**
     * 回复超时时间 单位秒(默认30s)
     */
    @Column("read_timeout")
    private Integer readTimeout;

    /**
     * 底层HTTP库所有的并发执行的请求数量
     */
    @Column("dispatcher_max_requests")
    private Integer dispatcherMaxRequests;

    /**
     * 底层HTTP库对每个独立的Host进行并发请求的数量
     */
    @Column("dispatcher_max_requests_per_host")
    private Integer dispatcherMaxRequestsPerHost;

    /**
     * 底层HTTP库中复用连接对象的最大空闲数量
     */
    @Column("connection_pool_max_idle_count")
    private Integer connectionPoolMaxIdleCount;

    /**
     * 底层HTTP库中复用连接对象的回收周期（单位分钟）
     */
    @Column("connection_pool_max_idle_minutes")
    private Integer connectionPoolMaxIdleMinutes;

    /**
     * 上传失败重试次数
     */
    @Column("retry_max")
    private String retryMax;

    /**
     * 分片大小,默认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;

}

