using System.ComponentModel.DataAnnotations;
using bitforum.Attributes;

namespace bitforum.DTOs.Request
{
    /// <summary>
    /// 회원가입 요청 DTO
    /// </summary>
    public class RegisterDto
    {
        [Required(ErrorMessage = "이메일을 입력해주세요.")]
        [MaxLength(60, ErrorMessage = "이메일 주소는 60자 이하로 입력 가능합니다.")]
        [DataType(DataType.EmailAddress)]
        public required string Email { get; set; }

        [Required(ErrorMessage = "비밀번호를 입력해주세요.")]
        [MaxLength(255, ErrorMessage = "비밀번호를 확인해주세요.")]
        [DataType(DataType.Password)]
        public required string Password { get; set; }

        [Required(ErrorMessage = "이용약관에 동의해주세요.")]
        [MustBeTrue(ErrorMessage = "이용약관에 동의해야 합니다.")]
        public required bool IsPolicyAgree { get; set; }

        [Required(ErrorMessage = "개인정보처리방침에 동의해주세요.")]
        [MustBeTrue(ErrorMessage = "개인정보처리방침에 동의해야 합니다.")]
        public required bool IsPrivacyAgree { get; set; }
    }
}
