package dev.awesomedev.mirim.web.dto;

import dev.awesomedev.mirim.domain.User;

/**
 * 이 파일이 하는 일:
 * 로그인/내 정보 응답으로 내려줄 사용자 정보 DTO다.
 *
 * 학습 포인트: 엔티티(User)를 그대로 응답하지 않고 DTO로 변환하는 이유 —
 * passwordHash 같은 민감한 필드가 실수로 밖에 나가는 것을 막기 위해서다.
 */
public record UserResponse(Long id, String username, String name, String role, String track) {

    /** User 엔티티 → 응답 DTO 변환 */
    public static UserResponse from(User user) {
        return new UserResponse(user.getId(), user.getUsername(), user.getName(),
                user.getRole(), user.getTrack());
    }
}
