Python/Today

python 정리 #3(app/crud/user_crud.py)

DGeon 2025. 7. 8. 13:41
# SQLAlchemy Session 타입 임포트
from sqlalchemy.orm import Session
# User ORM 모델 임포트
from db.another_db.models import User
# 회원가입 요청 검증용 Pydantic 모델 임포트
from schemas.requests.user_create import UserCreate

# ─────────────────────────────────────────────────────────────
# 신규 사용자 생성 함수 (CRUD)
# ─────────────────────────────────────────────────────────────
def create_user(
    db: Session,           # SQLAlchemy DB 세션 (의존성 주입)
    user: UserCreate       # Pydantic UserCreate 모델 (요청 데이터)
):
    # 1) User 모델 인스턴스 생성 (이메일만 초기화)
    db_user = User(email=user.email)

    # 2) 세션에 객체 추가 (INSERT 준비)
    db.add(db_user)

    # 3) 커밋: 실제 DB에 반영
    db.commit()

    # 4) 새로고침: 자동 생성된 필드(ID 등) 업데이트
    db.refresh(db_user)

    # 5) 생성된 User ORM 객체 반환
    return db_user