SPMS_API/SPMS.Application/DTOs/Auth/SignupRequestDto.cs
SEAN 8224c7a17b improvement: 가입 계약 확장 — 동의 필드/세션/메일 발송 안정화 (#202)
- Admin 엔티티에 AgreeTerms, AgreePrivacy, AgreedAt 필드 추가
- SignupRequestDto에 동의 필드 추가 (필수 검증)
- SignupResponseDto에 verifySessionId, emailSent 응답 추가
- AuthService.SignupAsync: 동의 검증, verify session 생성, 메일 발송 try-catch
- ErrorCodes에 TermsNotAgreed(114), PrivacyNotAgreed(115) 추가
- EF Core 마이그레이션 AddConsentFieldsToAdmin 생성/적용

Closes #202
2026-02-25 09:29:17 +09:00

29 lines
1.2 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace SPMS.Application.DTOs.Auth;
public class SignupRequestDto
{
[Required(ErrorMessage = "이메일은 필수입니다.")]
[EmailAddress(ErrorMessage = "올바른 이메일 형식이 아닙니다.")]
public string Email { get; set; } = string.Empty;
[Required(ErrorMessage = "비밀번호는 필수입니다.")]
[MinLength(8, ErrorMessage = "비밀번호는 8자 이상이어야 합니다.")]
public string Password { get; set; } = string.Empty;
[Required(ErrorMessage = "이름은 필수입니다.")]
[StringLength(50, ErrorMessage = "이름은 50자 이내여야 합니다.")]
public string Name { get; set; } = string.Empty;
[Required(ErrorMessage = "전화번호는 필수입니다.")]
[StringLength(20, ErrorMessage = "전화번호는 20자 이내여야 합니다.")]
public string Phone { get; set; } = string.Empty;
[Required(ErrorMessage = "서비스 이용약관 동의는 필수입니다.")]
public bool AgreeTerms { get; set; }
[Required(ErrorMessage = "개인정보 처리방침 동의는 필수입니다.")]
public bool AgreePrivacy { get; set; }
}