diff --git a/app/api/documents.py b/app/api/documents.py
index 4b0ec26..13d4ce6 100644
--- a/app/api/documents.py
+++ b/app/api/documents.py
@@ -422,6 +422,10 @@ async def upload_document(
session: Annotated[AsyncSession, Depends(get_session)],
doc_purpose: str | None = Form(None, description="business | knowledge"),
library_path: str | None = Form(None, description="자료실 경로 (자동 @library/ 태깅)"),
+ facet_company: str | None = Form(None),
+ facet_topic: str | None = Form(None),
+ facet_year: int | None = Form(None),
+ facet_doctype: str | None = Form(None),
):
"""파일 업로드 → Inbox 저장 + DB 등록 + 처리 큐 등록"""
from core.library import DEFAULT_LIBRARY_PATH, LIBRARY_PREFIX, normalize_library_path
@@ -490,6 +494,10 @@ async def upload_document(
source_channel="manual",
doc_purpose=doc_purpose,
user_tags=[library_tag] if library_tag else [],
+ facet_company=facet_company or None,
+ facet_topic=facet_topic or None,
+ facet_year=facet_year,
+ facet_doctype=facet_doctype or None,
)
session.add(doc)
await session.flush()
diff --git a/frontend/src/lib/components/editors/FileInfoView.svelte b/frontend/src/lib/components/editors/FileInfoView.svelte
index 09b087c..39963db 100644
--- a/frontend/src/lib/components/editors/FileInfoView.svelte
+++ b/frontend/src/lib/components/editors/FileInfoView.svelte
@@ -1,10 +1,14 @@
@@ -82,4 +107,69 @@
{formatDate(doc.created_at)}
+
+
+ 탐색 축
+
+
+
- 회사
+ -
+
+
+
+
+
- 주제
+ -
+
+
+
+
+
- 연도
+ -
+
+
+
+
+
- 문서유형
+ -
+
+
+
+
diff --git a/frontend/src/routes/library/+page.svelte b/frontend/src/routes/library/+page.svelte
index b9890d0..15d6781 100644
--- a/frontend/src/routes/library/+page.svelte
+++ b/frontend/src/routes/library/+page.svelte
@@ -287,6 +287,10 @@
formData.append('file', file);
formData.append('doc_purpose', 'business');
formData.append('library_path', activePath || DEFAULT_LIBRARY_PATH);
+ if (activeFacetCompany) formData.append('facet_company', activeFacetCompany);
+ if (activeFacetTopic) formData.append('facet_topic', activeFacetTopic);
+ if (activeFacetYear) formData.append('facet_year', activeFacetYear);
+ if (activeFacetDoctype) formData.append('facet_doctype', activeFacetDoctype);
try {
await api('/documents/', { method: 'POST', body: formData });
success++;
@@ -606,6 +610,18 @@
{uploadingCount > 0 ? `업로드 중 (${uploadingCount})` : '업로드'}
+
+ {#if hasAnyFacet}
+
+ 적용: {[
+ activeFacetCompany && `회사:${activeFacetCompany}`,
+ activeFacetTopic && `주제:${activeFacetTopic}`,
+ activeFacetYear && `연도:${activeFacetYear}`,
+ activeFacetDoctype && `유형:${activeFacetDoctype}`,
+ ].filter(Boolean).join(' / ')}
+
+ {/if}
+