package dev.awesomedev.mirim.web.dto;

import jakarta.validation.constraints.NotBlank;

/**
 * 이 파일이 하는 일:
 * 로그인 요청 본문 {username, password}를 담는 DTO다.
 *
 * 학습 포인트: record는 필드·생성자·getter를 자동으로 만들어 주는 자바 문법으로,
 * "데이터를 담기만 하는 그릇"인 DTO에 딱 맞는다.
 *
 * ⚠️ @NotBlank가 없던 시절의 버그: {"password":"x"}처럼 username 없이 요청하면
 * 컨트롤러 첫 줄의 username.toLowerCase()에서 NullPointerException → 500 서버 오류.
 * 사용자 입력은 "당연히 있겠지"가 통하지 않는다 — 없을 수 있는 모든 것을 검증한다.
 * (@Valid + @NotBlank 조합이면 null·빈 문자열 모두 400으로 정중히 거절된다.)
 */
public record LoginRequest(
        @NotBlank(message = "아이디를 입력해 주세요.") String username,
        @NotBlank(message = "비밀번호를 입력해 주세요.") String password
) {
}
