Files
nuriq_back/src/models/user_model/user_dto.py
윤영훈 abf405f8ae [FEAT] (사용자 로직): 프로필 서비스 구현 완료
v0.1.3 (2025-11-16)
- 프로필 조회, 프로필 업데이트, 탈퇴 구현 완료.
2025-11-16 18:02:27 +09:00

63 lines
1.4 KiB
Python

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