-
Hoanganhvu123 authored
EPIC 8 - INBOUND WEBHOOKS & CRM INBOX
✅ ======================================== Backend: - Add is_read field to memos table with auto-migration - Inbound webhook endpoint: POST /inbound_webhooks/{workspace_id} - Inbox endpoints: GET /users/{id}/inbox/unread_count, GET /users/{id}/inbox/memos - Webhook payload formatting (title+body → markdown, arbitrary → bullet list) - Optional secret verification via X-Webhook-Secret header - Database indexes: idx_memos_is_read, idx_memos_workspace Frontend: - Inboxes.tsx: Two tabs (Notifications + Unread Memos) - useInboxUnreadCount hook with 60s refetch - useMarkMemoAsRead mutation - Navigation badge: notifications + unread memos count - i18n: inbox.* keys (en/vi) DOCUMENT MANAGEMENT (DOCX/PDF)🆕 ================================== Backend: - New table: cuccu_documents with full schema - DocumentService: upload, list, get, update, delete, process, import_to_memo - AI enhancement via OpenAI (tag extraction + summarization) - python-docx integration for text extraction - Status workflow: PENDING → PROCESSING → COMPLETED/FAILED - API routes: /documents/upload, /documents, /documents/{id}, /documents/{id}/process, /documents/{id}/import Frontend: - New page: DocumentsPage (route: /app/documents) - Components: UploadArea, DocumentList, DocumentCard, PreviewPanel - Hooks: useDocuments, useDocumentUpload, useDocumentProcess, useDocumentImport - AI enhancement panel with toggles (extract tags, generate summary) - Drag-and-drop file upload with validation - Status badges, tag display, content preview - Workspace isolation support - Full i18n support (en/vi) Files changed: - Backend: 15+ files (new: api/documents/, common/sqlite_client.py updates, schemas, services, config) - Frontend: 20+ files (new: components/Documents/, hooks/useDocuments.ts, docxService.ts, pages/DocumentsPage.tsx) - Tests: test_inbox.py (5 tests passing) - Plan docs: epic-8-inbound-webhooks-crm-inbox-done.md, docx-frontend-detailed-plan.md🤖 Generated with Claude Codea67917c3
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| documents_routes.py |