/*
 * Copyright (c) 2025 SimcuTeam. All rights reserved.
 * 遵循 MIT 许可证。
 * Communications/SimApiLoginItem：登录信息项。
 */

package simcu::simapi.communications

import std.collection.*
import simcu::serialization.*

/**
 * 登录信息项：Token 认证通过后注入请求上下文。
 *
 * 序列化/反序列化由 simapi_serialization 反射处理（免标注、免约束），
 * 字段 id/types/meta/extra 全部为受支持类型（String/Array/HashMap）。
 */
public class SimApiLoginItem {
    public var id: String = ""
    @NotRequired
    public var types: Array<String> = ["user"]
    @NotRequired
    public var meta: HashMap<String, String> = HashMap<String, String>()
    @NotRequired
    public var extra: HashMap<String, Any> = HashMap<String, Any>()

    public init() {}

    public init(id: String) {
        this.id = id
        this.types = ["user"]
        this.meta = HashMap<String, String>()
        this.extra = HashMap<String, Any>()
    }

    public init(id: String, types: Array<String>) {
        this.id = id
        this.types = types
        this.meta = HashMap<String, String>()
        this.extra = HashMap<String, Any>()
    }
}
