/*
 * Copyright (c) 2025 SimcuTeam. All rights reserved.
 * 遵循 MIT 许可证。
 */

package simcu::simapi.communications

/**
 * 带任意对象数据的响应（非泛型版，供响应自动封装使用）。
 *
 * 与 SimApiResponse<T> 的区别：data 为 Any（运行时类型不定），用于
 * SimApiRequestDelegateFactory 派发结果时统一包装 DTO/数组/动态结构。
 *
 * 序列化/反序列化由 simapi_serialization 反射处理：
 *   - code/message/data 为普通字段，反射递归
 *   - data 为动态结构（HashMap<String, Any>）同样反射支持
 */
public class SimApiDataResponse {
    public var code: Int64 = 200
    public var message: String = "成功"
    public var data: ?Any = None

    public init() {}

    public init(data: Any) {
        this.data = Some(data)
    }

    public init(code: Int64, message: String) {
        this.code = code
        this.message = message
    }

    public init(code: Int64, message: String, data: Any) {
        this.code = code
        this.message = message
        this.data = Some(data)
    }
}
