/*
 * Copyright (c) 2025 SimcuTeam. All rights reserved.
 * 遵循 MIT 许可证。
 * AES body 密钥提供器基类。
 *
 * 说明：本类含配置字段（appIdName），故用 open class 而非 interface
 * （Cangjie 接口不能声明字段），与抽象类对应。应用继承本类并实现 getKey。
 */

package simcu::simapi.interfaces

/**
 * AES body 密钥提供器基类：应用继承并实现 getKey(appId)，返回 appId 对应的 AES 密钥。
 */
public open class AesBodyProviderBase {
    /// appId 字段名（None 表示不带 appId）
    public var appIdName: ?String = Some("appId")


    /**
     * 根据 appId 获取密钥。
     * @param appId 应用 ID（未配置 appIdName 时为 None）。
     * @return 密钥；返回 None 表示获取失败。
     */
    public open func getKey(_: ?String): ?String {
        None
    }
}
