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} +