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:13:26
 */
@Data
@Table("schisandra_oss_jinshan")
public class SchisandraOssJinshan implements Serializable {

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

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

    /**
     *
     */
    @Column("access_key_id")
    private String accessKeyId;

    /**
     *
     */
    @Column("access_key_secret")
    private String accessKeySecret;

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

    /**
     *
     */
    @Column("endpoint")
    private String endpoint;

    /**
     * 服务地址,参考 http://ks3.ksyun.com/doc/api/index.html Doc
     * 中国（杭州）:kss.ksyun.com
     * 中国（杭州）cdn:kssws.ks-cdn.com
     * 美国（圣克拉拉）:ks3-us-west-1.ksyun.com
     * 中国（北京）:ks3-cn-beijing.ksyun.com
     * 中国（香港）:ks3-cn-hk-1.ksyun.com
     * 中国（上海）:ks3-cn-shanghai.ksyun.com
     */
    @Column("region")
    private String region;

    /**
     *
     */
    @Column("security_token")
    private String securityToken;

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

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

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

    /**
     * http或者https
     */
    @Column("protocol")
    private String protocol;

    /**
     * 签名版本
     */
    @Column("version")
    private String version;

    /**
     * 是否使用path style access方式访问
     */
    @Column("path_style_access")
    private String pathStyleAccess;

    /**
     * 允许客户端发送匿名请求
     */
    @Column("allow_anonymous")
    private String allowAnonymous;

    /**
     * 当服务端返回307时是否自动跳转，
     * 主要发生在用Region A的endpoint请求Region B的endpoint
     */
    @Column("flow_redirect")
    private String flowRedirect;

    /**
     * 是否使用绑定的域名作为endpoint
     */
    @Column("domain_mode")
    private String domainMode;

    /**
     * 签名类
     */
    @Column("signer_class")
    private String signerClass;

    /**
     * 是否压缩
     */
    @Column("use_gzip")
    private String useGzip;

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

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

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

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

}

