[FEAT] (사용자 로직): 인증 서비스 로직 구현 중
v0.1.1 (2025-11-13) - 사용자 관련 인증 서비스 로직 구현 중
This commit is contained in:
63
src/models/user_model/user_dto.py
Normal file
63
src/models/user_model/user_dto.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from pydantic import BaseModel, field_validator
|
||||
from typing import Optional
|
||||
|
||||
class CreateUserDTO(BaseModel):
|
||||
"""회원 가입 DTO"""
|
||||
|
||||
# 필수
|
||||
id: str
|
||||
password: str
|
||||
|
||||
# 선택
|
||||
user_name: Optional[str] = None
|
||||
|
||||
@field_validator('id')
|
||||
@classmethod
|
||||
def validate_id(cls, v):
|
||||
if not v or len(v.strip()) == 0:
|
||||
raise ValueError('ID는 필수입니다')
|
||||
if len(v) < 3 or len(v) > 50:
|
||||
raise ValueError('ID는 3-50자 사이여야 합니다')
|
||||
return v.strip()
|
||||
|
||||
@field_validator('password')
|
||||
@classmethod
|
||||
def validate_password(cls, v):
|
||||
if not v or len(v) < 6:
|
||||
raise ValueError('비밀번호는 최소 6자 이상이어야 합니다')
|
||||
return v
|
||||
|
||||
# 자동 형변환 방지
|
||||
class Config:
|
||||
strict = True
|
||||
|
||||
|
||||
class CheckUserDTO(BaseModel):
|
||||
"""로그인 확인 DTO"""
|
||||
|
||||
# 필수
|
||||
id: str
|
||||
password: str
|
||||
|
||||
@field_validator('id', 'password')
|
||||
@classmethod
|
||||
def validate_required(cls, v):
|
||||
if not v or len(v.strip()) == 0:
|
||||
raise ValueError('필수 항목입니다')
|
||||
return v.strip()
|
||||
|
||||
# 자동 형변환 방지
|
||||
class Config:
|
||||
strict = True
|
||||
|
||||
|
||||
class CreateUserIpsDTO(BaseModel):
|
||||
"""사용자 IP 저장 DTO"""
|
||||
# 필수
|
||||
user_uuid: str
|
||||
user_ip: str
|
||||
user_agent: str
|
||||
|
||||
# 자동 형변환 방지
|
||||
class Config:
|
||||
strict = True
|
||||
Reference in New Issue
Block a user