"""회원가입 요청 스키마.""" from pydantic import BaseModel, EmailStr, Field, model_validator class RegisterRequest(BaseModel): email: EmailStr password: str = Field(min_length=8, max_length=128) password_confirm: str = Field(min_length=8, max_length=128) name: str = Field(min_length=1, max_length=255) position: str | None = Field(default=None, max_length=100) phone: str | None = Field(default=None, max_length=20) terms_version: str = Field(min_length=1, max_length=20) terms_agreed: bool privacy_agreed: bool marketing_agreed: bool = False @model_validator(mode="after") def validate_registration(self): if not self.terms_agreed or not self.privacy_agreed: raise ValueError("필수 약관 동의가 필요합니다.") if self.password != self.password_confirm: raise ValueError("비밀번호와 확인 비밀번호가 일치하지 않습니다.") return self class RegisterVerifyRequest(BaseModel): email: EmailStr otp_code: str = Field(pattern=r"^\d{6}$")