package com.zioinfo.kintex.auth.dto;

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

/**
 * 공개 회원가입 요청(SCR-01 회원가입). 생성 계정은 role_code='USER'·status='ACTIVE'.
 * <p>companyName·inviteCode 는 선택. inviteCode 있으면 해당 행사 event_member 매핑을 best-effort 시도한다.
 * 보안(계약 §0-3): password 는 BCrypt 해시로만 저장하며 응답/로그에 원문·해시 노출 금지.
 */
public record RegisterRequest(
        @NotBlank @Email String email,
        @NotBlank @Size(max = 120) String displayName,
        @NotBlank @Size(min = 8, max = 100) String password,
        @Size(max = 200) String companyName,
        @Size(max = 80) String inviteCode
) {
}
