//
//  QiniuConfig.swift
//  ylgamehall
//
//  七牛云配置常量（沿用 msext QiniuConfig.m）。
//
//  ⚠️ SecretKey 客户端硬编码 = 父项目 CLAUDE.md 已识别但接受的安全风险，
//  同款 AppSecret 路径。msext 已分发多年等价泄露，沿用不引入新攻击面。
//

import Foundation

/// 七牛云配置常量。整体 nonisolated，使得 QiniuUploader（actor）和其它非 MainActor
/// 上下文可直接读取这些 immutable static 常量，无需 await MainActor.run。
public enum QiniuConfig {
    /// 七牛 AccessKey（沿用 msext QiniuConfig.m:12）
    public nonisolated static let accessKey = "dQbQLUm1jIuL9PEq4jd6VKB-6pPxPEdg7le9KeBm"

    /// 七牛 SecretKey（沿用 msext QiniuConfig.m:13）— HMAC-SHA1 签 putPolicy 用
    public nonisolated static let secretKey = "RCZpwLhAPoQ2sQQyWXzMJc7Po2MyZWfUJeW4Jmfq"

    /// 存储空间名（沿用 msext QiniuConfig.m:16）— putPolicy scope 用
    public nonisolated static let bucketName = "iosaudio"

    /// CDN 默认域名（沿用 msext qiniudomain/ 渠道注入目录名，已生产生效）。
    /// msext fallback 是 `iosaudio.daoqi8888.cn`，但实际渠道注入覆盖为 `daoqi88`；
    /// 新外壳直接沿用渠道注入值。
    public nonisolated static let cdnDomain = "iosaudio.daoqi88.cn"

    /// 录音 key 模板前缀（msext QiniuConfig.m:22 为空字符串）
    public nonisolated static let recordingDirectory = ""

    /// 拼访问 URL：`http://{cdnDomain}/{key}`（msext QiniuManager.m:197 等价）
    public nonisolated static func publicURL(forKey key: String) -> String {
        "http://\(cdnDomain)/\(key)"
    }
}
