2026๋…„ 7์›” 21์ผ ํ™”์š”์ผ

app/domain/answer/schemas.py



# domain/answer/schemas.py

import datetime

from pydantic import BaseModel, field_validator


# ๐Ÿ“ฅ ์ž…๋ ฅ: ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ต๋ณ€์„ ํƒ€์ดํ•‘ํ•ด์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ๊ฒ€์ฆํ•˜๋Š” ํ‹€
class Create(BaseModel):
    content: str

    # ์—ฌ๊ธฐ์— @field_validator ์ ์šฉ
    @field_validator("content")
    def not_empty(cls, v):
        if not v or not v.strip():
            raise ValueError("๋นˆ ๊ฐ’์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.")
            # ๊ด€๋ก€์ƒ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋Š” ์˜์–ด๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
            # raise ValueError('Content cannot be empty.')
        return v


# ๐Ÿ“ค ์ถœ๋ ฅ: DB์—์„œ ๊บผ๋‚ด์ง„ ๋‹ต๋ณ€์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ (์งˆ๋ฌธ ์ƒ์„ธ์กฐํšŒ ์‹œ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธธ ๋ถ€ํ’ˆ)
class Answer(BaseModel):
    id: int
    content: str
    created_at: datetime.datetime


database.py

import os from contextlib import contextmanager # contextmanager ์ž„ํฌํŠธ from typing import Generator from dotenv...