Files
TODO_list_system/CONVERSATION_MEMORY.md
beabigegg b0c86302ff 1ST
2025-08-29 16:25:46 +08:00

95 lines
3.3 KiB
Markdown

# 對話記憶 - PANJIT To-Do List System V1
## 最新狀態 (2025-08-29)
### 已完成的主要功能
1. **Fire Email 功能修復** - 修正 AD 帳號轉換郵件地址的問題
2. **重複錯誤提示修復** - 解決 axios 攔截器重複顯示錯誤的問題
3. **增強型郵件通知設定** - 支援彈性提醒天數、週/月摘要
4. **CORS 網路錯誤修復** - 新增 port 3002 支援
5. **通知系統實作** - 完整的通知顯示與互動功能
6. **通知面板互動功能** - 查看、標記已讀等按鈕功能完成
### 核心技術架構
- **前端**: Next.js 14 + TypeScript + Material-UI + React Hook Form
- **後端**: Flask + SQLAlchemy + JWT + MySQL
- **認證**: LDAP 整合 + JWT Token 刷新機制
- **郵件**: SMTP 服務整合 (mail.panjit.com.tw:25)
- **資料庫**: MySQL with enhanced notification models
### 重要修復記錄
#### 1. Fire Email 核心問題修復
**檔案**: `backend/utils/email_service.py:_get_user_email`
```python
# 修正前
user_info.get('mail') # 錯誤的欄位名稱
# 修正後
user_info.get('email') # 正確的欄位名稱
```
#### 2. 通知系統 API 實作
**檔案**: `backend/routes/notifications.py`
- 新增 `/api/notifications/` - 獲取用戶通知
- 新增 `/api/notifications/mark-read` - 標記單個通知已讀
- 新增 `/api/notifications/mark-all-read` - 標記全部通知已讀
#### 3. 前端通知面板功能
**檔案**: `frontend/src/components/layout/NotificationPanel.tsx`
- 實作查看按鈕 - 導航到對應 todo
- 實作標記已讀按鈕 - 更新通知狀態
- 實作全部標記已讀 - 批量更新
- 實作查看全部 - 導航到主頁
### 資料庫模型增強
**檔案**: `backend/models.py`
```python
class TodoUserPref(db.Model):
monthly_summary_enabled = db.Column(db.Boolean, default=False)
reminder_days_before = db.Column(JSON, default=lambda: [1, 3])
weekly_summary_time = db.Column(db.String(5), default='09:00')
monthly_summary_time = db.Column(db.String(5), default='09:00')
# ... 其他增強欄位
```
### 已知問題與待實作功能
1. **公開 Todo 功能** - 目前追蹤人角色缺乏意義,需要實作公開 todo 功能
2. **通知已讀狀態持久化** - 目前僅在記憶體中,需要資料庫儲存
3. **Todo 可見性設定** - 需要新增公開/私人設定
### 環境配置
```bash
# 前端 (Port 3002)
cd frontend && npm run dev
# 後端 (Port 5000)
cd backend && ./venv/Scripts/activate && python app.py
```
### 測試用戶帳號
- **uthuang** (92509) - uthuang@panjit.com.tw
- **ymirliu** - ymirliu@panjit.com.tw
- **minjiesyu** (92453) - minjiesyu@panjit.com.tw
### API 端點清單
- `GET /api/notifications/` - 獲取通知清單
- `POST /api/notifications/mark-read` - 標記單個通知已讀
- `POST /api/notifications/mark-all-read` - 標記全部通知已讀
- `POST /api/notifications/fire-email` - 發送緊急郵件
- `GET/PATCH /api/notifications/settings` - 通知設定管理
### 重要設定檔案
- **後端 .env**: 包含 CORS_ORIGINS 設定 (支援 3000,3001,3002)
- **前端 api.ts**: 包含完整的 notificationsApi 客戶端
- **資料庫連線**: mysql.theaken.com:33306/db_A060
## 開發原則提醒
1. 必須提供完整可執行的程式碼
2. 所有功能都需要單元測試
3. 確保 Windows 環境相容性
4. 遵循 MUI 設計規範
5. 實作適當的錯誤處理
---
*最後更新: 2025-08-29 16:19*