package dev.awesomedev.mirim.web.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

/**
 * 이 파일이 하는 일:
 * 비밀번호 변경 요청 본문 {currentPassword, newPassword}를 담는 DTO다.
 *
 * 학습 포인트: 로그인했는데 왜 현재 비밀번호를 또 받나? — 재인증(re-authentication).
 * 자리를 비운 사이 남이 내 브라우저로 비밀번호를 바꿔 계정을 뺏는 것을 막는 관문이다.
 * "누구인지(인증)"와 "정말 본인이 맞는지(재인증)"는 다른 질문이다.
 */
public record ChangePasswordRequest(

        @NotBlank(message = "현재 비밀번호는 필수입니다.")
        String currentPassword,

        // 새 비밀번호도 가입 때와 같은 규칙(8자 이상)을 적용한다.
        @NotBlank(message = "새 비밀번호는 필수입니다.")
        @Size(min = 8, message = "비밀번호는 8자 이상이어야 합니다.")
        String newPassword
) {
}
