• Hoanganhvu123's avatar
    feat(epic8+docx): complete Inbound Webhooks CRM Inbox + Full DOCX Document Management · a67917c3
    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 Code
    a67917c3
DocumentCard.tsx 7.26 KB