package com.njcn.gather.user.user.config;

import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * MinIO 通用配置。
 */
@Data
@Component
@ConfigurationProperties(prefix = "storage.minio")
public class StorageMinioProperties {

    /**
     * MinIO 服务地址。
     */
    private String endpoint;

    /**
     * MinIO 访问账号。
     */
    private String accessKey;

    /**
     * MinIO 访问密码。
     */
    private String secretKey;

    /**
     * 业务桶配置。
     */
    private Map<String, String> buckets = new LinkedHashMap<String, String>();

    public String requireBucket(String bucketKey) {
        String bucketName = buckets.get(bucketKey);
        if (StrUtil.isBlank(bucketName)) {
            throw new BusinessException(CommonResponseEnum.FAIL, "MinIO桶配置缺失：" + bucketKey);
        }
        return bucketName;
    }
}
