وظایف
وظایف (tasks) ساختار سلسلهمراتبی دارند — یک وظیفه میتواند چند subtask داشته باشد — و میتوانند به یک رویداد یا تقویم متصل شوند.
Task یکی از چهار موجودیتی است که از طریق /api/sync همگام میشود —
دقیقاً مثل Calendar/Event/Reminder. مسیرِ مستقلِ /api/tasks حذف شده است؛
مانندِ بقیه، تنها راهِ خواندن و نوشتنِ Task همان sync است:
- نوشتن: یک
SyncPushTaskItemدر آرایهٔtasksِPOST /api/sync/push(op: "upsert"برای ساخت/ویرایش،op: "delete"برای حذفِ نرم،baseVersionبرای LWW). - خواندن: در آرایهٔ
tasksِ دلتایGET /api/sync/changesبرمیگردد و cursor یک واترمارکِtasksجداگانه نگه میدارد.
تغییرِ وضعیتِ تکمیل هم یک upsert معمولی است (isCompleted/completedAt)، نه
یک endpointِ جدا.
فیلدها
title،description،priority(LOW/MEDIUM/HIGH/URGENT)isCompletedوcompletedAtdueDate: مهلت انجامparentTaskId: والد (برای subtask)eventId/calendarId: اتصال به رویداد یا تقویمcolor،emoji،order(برای مرتبسازی دستی)
در همگامسازی، همین روابط با UID بیان میشوند: parentTaskUid، eventUid و
calendarUid. یک یادآور (Reminder) به دقیقاً یکی از event یا task متصل میشود.
رابطِ کاربری (اپ وب)
در apps/calendar-web، Tasks یک بخشِ مستقل با صفحهٔ اختصاصی در مسیرِ /tasks
است (TasksPage) با تبهای صندوق ورودی / امروز / آینده / تکمیلشده. همهٔ
عملیاتها (ساخت، تکمیل، ویرایش، حذف) ابتدا بهصورت محلی در Dexie اعمال و سپس
از طریقِ /api/sync همگام میشوند — هیچ endpointِ مستقلی صدا زده
نمیشود. برای جزئیاتِ ناوبری و رفتارِ responsive به UI واکنشگرا
مراجعه کنید.