package com.lesingle.modules.oss.config;

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

/**
 * 阿里云 OSS 配置
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "aliyun.oss")
public class OssConfig {

    /** OSS Endpoint（如：oss-cn-guangzhou.aliyuncs.com） */
    private String endpoint;

    /** AccessKey ID */
    private String accessKeyId;

    /** AccessKey Secret */
    private String accessKeySecret;

    /** Bucket 名称 */
    private String bucketName;

    /** 最大文件大小（字节），默认 10MB */
    private long maxFileSize = 10485760;

    /** 是否自动配置 CORS */
    private Boolean corsEnabled = true;

    /** CORS 允许的来源（逗号分隔） */
    private String corsAllowedOrigins = "http://localhost:3000";

    /** 允许的文件扩展名 */
    private String[] allowedExtensions = {
            ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp",
            ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx",
            ".mp4", ".mp3", ".wav", ".avi",
            ".zip", ".rar",
            ".txt", ".csv"
    };

    /**
     * 获取完整的 Endpoint 地址（https://前缀）
     */
    public String getFullEndpoint() {
        if (endpoint == null) {
            return "";
        }
        return endpoint.startsWith("https://") ? endpoint : "https://" + endpoint;
    }
}
