package com.zioinfo.kintex.auth.dto;

import java.util.List;

/**
 * 로그인 응답 — 액세스 토큰 + 참여 행사 워크스페이스 목록(SCR-01 카드 그리드).
 * 민감정보(비밀번호 해시·내부 식별자 등)는 절대 포함하지 않는다.
 */
public record LoginResponse(
        String accessToken,
        long expiresInSeconds,
        UserSummary user,
        List<WorkspaceDto> workspaces
) {
    /**
     * 로그인 사용자 요약. roleCode = app_user.role_code(전역 역할 ADMIN/MANAGER/…, 없으면 null) — 순증 필드,
     * 기존 필드(userId·displayName·hallManager)는 불변(하위호환). 비밀번호 해시·시크릿은 절대 미포함.
     */
    public record UserSummary(String userId, String displayName, boolean hallManager, String roleCode) {
        /** 하위호환 보조 생성자 — roleCode 미상 경로(예: 초대 수락 재발급)는 null. */
        public UserSummary(String userId, String displayName, boolean hallManager) {
            this(userId, displayName, hallManager, null);
        }
    }
}
