Amaç: Görev yönetimini 3 platform arasında senkronize etmek - görev oluşturulduğunda Zimbra'ya yazılsın, atandığında Telegram'dan bildirim gitsin, Telegram'dan durum güncellenebilsin.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ NeoList │ ◄─────► │ Oracle │ ◄─────► │ Zimbra │
│ (Web UI) │ │ (Master) │ │ (CalDAV) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
│ │ │
└───────────────────────┼───────────────────────┘
│
▼
┌─────────────┐
│ Telegram │
│ (Read + │
│ Notify) │
└─────────────┘
Master: Oracle Database - Tüm CRUD Oracle'da yapılır, Zimbra'ya async push
-
src/lib/notifications.tsdosyası oluştur -
notifyViaZimbra(task, userEmail)- Zimbra CalDAV'a task yaz -
notifyViaTelegram(userId, message)- Telegram mesajı gönder -
notifyViaEmail(userEmail, subject, body)- Email bildirimi (opsiyonel)
-
src/lib/integration-hooks.tsdosyası oluştur -
onTaskCreated(task, assignees)- Zimbra sync + Telegram bildirim -
onTaskUpdated(task, changes)- Zimbra güncelle -
onTaskAssigned(task, assignee)- Telegram "size görev atandı" bildirimi -
onTaskCompleted(task, completedBy)- Zimbra status sync + Telegram bildirim
-
src/app/api/tasks/route.ts- POST sonrasınaonTaskCreated()hook çağrısı ekle -
src/app/api/tasks/[id]/route.tsoluştur - PUT/DELETE içinonTaskUpdated()hook
-
/newtask <başlık>komutu - Hızlı görev oluşturma - Görev atama bildirimi - "📋 Size yeni görev atandı: {title}"
- Due date yaklaşınca hatırlatıcı
- Inline keyboard ile hızlı durum güncelleme
- Cron endpoint:
/api/cron/sync-zimbra - Saatlik Zimbra→NeoList sync (Zimbra'da yapılan değişiklikleri çek)
- Due date reminder cron - Yarın/bugün bitecek görevler için Telegram bildirimi
| Dosya | İşlem | Açıklama |
|---|---|---|
src/lib/notifications.ts |
YENİ | Merkezi bildirim servisi |
src/lib/integration-hooks.ts |
YENİ | Task event hook'ları |
src/app/api/tasks/[id]/route.ts |
YENİ | Task PUT/DELETE endpoint |
src/app/api/tasks/route.ts |
GÜNCELLE | POST sonrası hook çağrısı |
src/lib/telegram-bot.ts |
GÜNCELLE | Bildirim + yeni komutlar |
src/lib/zimbra-sync.ts |
GÜNCELLE | syncTasksFromZimbra DB update |
src/store/task-store.ts |
GÜNCELLE | API sonrası hook tetikleme |
- Çift yönlü - Oracle master, Zimbra'ya realtime push, Zimbra'dan saatlik pull
- Tek yönlü - Sadece NeoList→Zimbra
- Evet -
/newtaskkomutu ile hızlı görev - Hayır - Sadece görüntüleme ve durum güncelleme
- Last-modified wins - En son güncellenen versiyon geçerli
- Master wins - Oracle her zaman kazanır
- Zimbra Rate Limiting - Batch işlem kullan, her task için ayrı HTTP call yapma
- Telegram Flood Control - Queue ile mesaj gönder, spam yapma
- Error Handling - Sync hataları log'a yazılsın, kullanıcıya gösterilmesin
- User Preference -
zimbra_sync_enabled = 0olan kullanıcıları sync'e dahil etme - Async Processing - Webhook response'u bekletme, background'da işle