2026년 7월 21일 화요일

app/domain/answer/crud.py



# domain/answer/crud.py

# 1. 파이썬 내장 라이브러리 (필요한 경우)

# 2. 외부 설치 라이브러리 (FastAPI, SQLAlchemy 등)
from sqlalchemy.orm import Session

# 4. 현재 폴더(도메인) 내부의 모듈 (상대 경로)
from app.domains.answer import schemas

# 3. 내 프로젝트의 상위/공통 모듈 (절대 경로)
from app.domains.answer.models import Answer


def create(session: Session, question_id: int, answer_in: schemas.Create):
  # 1. 전달받은 'question' 객체에서 id를 추출합니다.
  # 2. 들어온 데이터(answer_in)를 활용해 진짜 DB 모델을 만듭니다.
  # 이제 막 새로 생성하는 답변 객체이므로 new_answer!
  answer = Answer(
    content=answer_in.content,
    question_id=question_id,  # id만 바로 꽂아 넣음
  )

  session.add(answer)
  session.commit()
  session.refresh(answer)
  # 관례적으로 생성된 객체를 반환하여 다음 로직에서 활용할 수 있게 함
  return answer


database.py

import os from contextlib import contextmanager # contextmanager 임포트 from typing import Generator from dotenv...