From 719c35afbc3658a3449fa13d91dbdd362bca333c Mon Sep 17 00:00:00 2001 From: hyungi Date: Tue, 16 Jun 2026 14:02:56 +0900 Subject: [PATCH] =?UTF-8?q?refactor(models):=20ai=5Ftags/user=5Ftags=20?= =?UTF-8?q?=EA=B3=B5=EC=9C=A0=20=EA=B0=80=EB=B3=80=20default=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20+=20=EC=A3=BC=EC=84=9D=20=EC=A0=95=EC=A0=95=20(R11a?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ai_tags: 주석/Mapped 타입이 dict 인데 실제 list 적재 → list 로 정정. - ai_tags/user_tags: default=[] (정의 시점 1회 평가되는 공유 가변 인스턴스) → default=list (callable, 행마다 새 리스트). SQLAlchemy column default 관용 idiom. 검증: py_compile 통과. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/models/document.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/document.py b/app/models/document.py index 9fdacf4..8436da8 100644 --- a/app/models/document.py +++ b/app/models/document.py @@ -52,7 +52,8 @@ class Document(Base): # 2계층: AI 가공 ai_summary: Mapped[str | None] = mapped_column(Text) - ai_tags: Mapped[dict | None] = mapped_column(JSONB, default=[]) + # R11a: 주석 dict→list 정정(실제 list 적재), 공유 가변 default=[] → callable default=list. + ai_tags: Mapped[list | None] = mapped_column(JSONB, default=list) ai_domain: Mapped[str | None] = mapped_column(String(100)) ai_sub_group: Mapped[str | None] = mapped_column(String(100)) ai_model_version: Mapped[str | None] = mapped_column(String(50)) @@ -79,7 +80,7 @@ class Document(Base): user_note: Mapped[str | None] = mapped_column(Text) # 사용자 태그 (ai_tags와 분리, #태그 파싱 결과 또는 수동 입력) - user_tags: Mapped[list | None] = mapped_column(JSONB, default=[]) + user_tags: Mapped[list | None] = mapped_column(JSONB, default=list) # R11a: 공유 가변 default 제거 # 핀 고정 pinned: Mapped[bool] = mapped_column(Boolean, default=False)