package xtools.boot.storage.base.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * <p>Title : StorageConfig</p>
 * <p>Description : StorageConfig</p>
 * <p>DevelopTools : Idea_x64_v2026.1</p>
 * <p>DevelopSystem : macOS Sequoia 15.7.5</p>
 * <p>Company : org.xujun</p>
 *
 * @author : XuJun
 * @version : 5.0.0
 * @date : 2026/3/14 07:40
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "storage")
public class StorageConfig {

    /**
     * 存储类型[file|s3]
     */
    private String type = "file";

    /**
     * 文件类型
     */
    private FileType file;

    /**
     * S3类型
     */
    private S3Type s3;

    /**
     * 文件类型
     */
    @Data
    public static class FileType {

        /**
         * 文件存储路径
         */
        private String path;
    }

    /**
     * S3类型
     */
    @Data
    public static class S3Type {

        /**
         * 服务类型[rustfs]
         */
        private String server = "default";

        /**
         * 地址
         */
        private String host;

        /**
         * 密钥ID
         */
        private String accessKeyId;

        /**
         * 密钥
         */
        private String secretAccessKey;
    }

}
