یادآورها
هر یادآور (Reminder) دقیقاً یک والد دارد: یک رویداد یا یک وظیفه — نه هر دو و نه هیچکدام. قید SQL reminders_parent_xor همین را در سطح دیتابیس تضمین میکند.
فیلدهای اصلی: value فاصلهٔ زمانی اعلان، type واحد آن (MINUTE/HOUR/DAY/WEEK) و isEnabled وضعیت فعال بودن. value عدد صحیح مثبت Int32 در بازهٔ 1..2147483647 است؛ مقدار نامعتبر، خطای همان آیتم sync است (invalid_item)، نه خطای 500 عمومی.
در sync:
- ساخت، والدِ زنده میخواهد؛ فرستادن بدون هیچ والد با
invalid_itemرد میشود. - patch مقدارها: فیلدهای والد را نفرستید تا پیوند فعلی حفظ شود.
- جابهجایی والد: در همان patch، والد جدید را بفرستید — مثلاً
eventUidجدید وtaskUid: null(یا برعکس). بعد از ترکیب، داشتن دو والد یا هیچ والد،invalid_itemاست. - restore یادآوری که والدش حذف شده،
parent_deletedمیگیرد؛ اول والد را احیا کنید یا در همان restore والد جدید بدهید.
providerId عدد صحیح امن اختیاری/nullable در بازهٔ -9007199254740991..9007199254740991 است؛ ذخیره و pull میشود، غیبت در patch حفظ و null پاک میکند. این فیلد اتصال provider یا تحویل اعلان را تضمین نمیکند.
نکتهٔ مرز قابلیت: ذخیره و sync یادآور، اثباتِ اجرای زمانبندی یا تحویل اعلان نیست — وضعیت زمانبندی در اندروید توضیح داده شده.
مرجع فیلدها: packages/contracts/src/sync.ts.