package cn.nianxx.thhotel.platform.identity.common.result;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;
import java.util.List;

/**
 * 登录成功响应。只返回明文 access token 一次，数据库只保存 token 哈希。
 */
public record AuthLoginResult(
        /** 访问令牌，前端放入 Authorization Bearer。 */
        @JsonProperty("access_token")
        String accessToken,
        /** token 类型，固定为 Bearer。 */
        @JsonProperty("token_type")
        String tokenType,
        /** token 过期 UTC 时间。 */
        @JsonProperty("expires_at")
        OffsetDateTime expiresAt,
        /** 当前登录用户信息。 */
        AuthUserResult user,
        /** 当前用户默认酒店 ID。 */
        @JsonProperty("default_hotel_id")
        String defaultHotelId,
        /** 当前用户可访问酒店列表。 */
        List<AuthHotelResult> hotels,
        /** 当前用户权限码列表。 */
        List<String> permissions,
        /** 当前用户可见菜单列表。 */
        List<AuthMenuResult> menus
) {
}
