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;

/**
 * ftp存储配置表 实体类
 *
 * @author landaiqing
 * @since 2024-06-02 21:54:20
 */
@Data
@Table("schisandra_oss_ftp")
public class SchisandraOssFtp implements Serializable {

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

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

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

    /**
     * 主机
     */
    @Column("host")
    private String host;

    /**
     * 端口
     */
    @Column("port")
    private Integer port;

    /**
     * 用户名
     */
    @Column("user")
    private String user;

    /**
     * 密码
     */
    @Column("password")
    private String password;

    /**
     * 编码
     */
    @Column("charset")
    private String charset;

    /**
     * FTP连接模式,默认被动
     */
    @Column("mode")
    private String mode;

    /**
     * 设置执行完操作是否返回当前目录,默认false
     */
    @Column("back_to_pwd")
    private String backToPwd;

    /**
     * 连接超时时长，单位毫秒
     */
    @Column("connection_timeout")
    private Long connectionTimeout;

    /**
     * Socket连接超时时长，单位毫秒
     */
    @Column("so_timeout")
    private Long soTimeout;

    /**
     * 设置服务器语言
     */
    @Column("server_language_code")
    private String serverLanguageCode;

    /**
     * 设置服务器系统关键词
     */
    @Column("system_key")
    private String systemKey;

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

}

