• 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
Name
Last commit
Last update
..
Editor Loading commit data...
Toolbar Loading commit data...
components Loading commit data...
hooks Loading commit data...
services Loading commit data...
state Loading commit data...
types Loading commit data...
FloatingFormatToolbar.tsx Loading commit data...
README.md Loading commit data...
constants.ts Loading commit data...
index.tsx Loading commit data...