feat(meals): вкладка «Питание» — напоминания о еде по времени суток
Новая модель Meal — напоминание по настенным часам (time HH:MM + дни недели), в отличие от interval-based Exercise. Отдельная вкладка «Питание» с пресетами быстрого добавления (Завтрак/Обед/Ужин/Перекус). - shared: тип Meal, meals в AppState, nextMealOccurrence (DST-safe), SAMPLE_MEALS, MEAL_PRESETS; IPC-каналы meal:* + evtFireMeal - main: валидация (строгая HH:MM-проверка диапазона), store-мутаторы с пересчётом nextFireAt, scheduler.checkDueMeals (гейт только globalEnabled, grace-окно 120с, игнор тихих часов/ВКС), notifications.fireMealReminder, IPC-хендлеры - renderer: вкладка Meals + MealEditor (время/дни/иконка), MealReminder в окне напоминания (Поел/Отложить, TTS), пункт в Sidebar, маршрут, i18n RU/EN, иконки UtensilsCrossed/Soup - persistence: meals additive (без bump схемы — старые state'ы получают []) - +24 теста (203 -> 227): nextMealOccurrence, валидаторы приёмов пищи, scheduler meal-gating (вкл/выкл, grace, игнор тихих часов) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,13 @@ export const IPC = {
|
||||
snooze: 'exercise:snooze',
|
||||
skip: 'exercise:skip',
|
||||
|
||||
// Meals (приёмы пищи — напоминания по времени суток)
|
||||
addMeal: 'meal:add',
|
||||
updateMeal: 'meal:update',
|
||||
deleteMeal: 'meal:delete',
|
||||
toggleMeal: 'meal:toggle',
|
||||
markMealDone: 'meal:markDone',
|
||||
|
||||
updateSettings: 'settings:update',
|
||||
getAccentColor: 'system:accentColor',
|
||||
getOsTheme: 'system:osTheme',
|
||||
@@ -60,6 +67,7 @@ export const IPC = {
|
||||
// events from main → renderer
|
||||
evtTick: 'evt:tick',
|
||||
evtFire: 'evt:fire',
|
||||
evtFireMeal: 'evt:fireMeal',
|
||||
evtMatchEnd: 'evt:matchEnd',
|
||||
evtStateChanged: 'evt:stateChanged',
|
||||
evtThemeChanged: 'evt:themeChanged',
|
||||
|
||||
Reference in New Issue
Block a user