Premium: configuración por semana concreta (fin de semana y comidas) #32

Closed
opened 2026-09-12 09:46:22 +00:00 by alexandrev · 1 comment
Owner

Petición del usuario:

En el premium quiero poder ampliar una semana concreta, también con los fines de semana, o cambiar las los snacks o las comidas, pero, por ejemplo, que no sea la opción que sea para todo el calendario o que sea, por ejemplo, semanas concretas. Pero solo en premium.

Hoy includeWeekends y activeMealTypes viven en AppSettings y aplican a TODAS las semanas. Se quiere poder sobreescribirlos en una semana concreta (añadir sábado/domingo, activar desayuno o merienda solo esa semana, quitar la comida…), sin tocar la configuración global. Funcionalidad exclusiva de premium.

Petición del usuario: > En el premium quiero poder ampliar una semana concreta, también con los fines de semana, o cambiar las los snacks o las comidas, pero, por ejemplo, que no sea la opción que sea para todo el calendario o que sea, por ejemplo, semanas concretas. Pero solo en premium. Hoy `includeWeekends` y `activeMealTypes` viven en `AppSettings` y aplican a TODAS las semanas. Se quiere poder sobreescribirlos en una semana concreta (añadir sábado/domingo, activar desayuno o merienda solo esa semana, quitar la comida…), sin tocar la configuración global. Funcionalidad exclusiva de premium.
Author
Owner

Implementado en 66128e7.

  • WeekPlan gana includeWeekendsOverride y mealTypesOverrideRaw; WeekSchedule (nuevo) resuelve qué manda en cada semana: el override si existe, AppSettings si no.
  • Todos los consumidores pasan por settings.schedule(for: plan): planificador, exports (imagen y texto), widget iOS, Apple Watch, creación/reconciliación de slots y sync de calendario.
  • UI: botón de ajustes en la fila de la semana (con punto cuando la semana está personalizada) → hoja Solo esta semana con los toggles de desayuno/comida/merienda/cena y fin de semana, botón para volver a los ajustes generales y confirmación cuando quitar un día o comida borra algo ya planificado.
  • Premium: crear/editar override requiere suscripción (PremiumAccess.canCustomizeWeekSchedule); los overrides ya guardados se respetan aunque caduque, para no borrar comidas planificadas. Free ve la hoja con el upsell y Aplicar deshabilitado.
  • Overrides incluidos en el snapshot de iCloud KV.
  • Cadenas en los 6 idiomas.

Verificado: 51 tests unitarios en verde (12 nuevos, incluidos 4 de integración que comprueban que se crean los slots de finde/desayuno, que el reset los devuelve a los globales y que quitar una comida borra sus slots) + UI test que abre la hoja desde la home y comprueba el gate premium. Queda por probar a mano el camino de compra real (aplicar el override con premium activo en dispositivo/TestFlight).

Implementado en `66128e7`. - `WeekPlan` gana `includeWeekendsOverride` y `mealTypesOverrideRaw`; `WeekSchedule` (nuevo) resuelve qué manda en cada semana: el override si existe, `AppSettings` si no. - Todos los consumidores pasan por `settings.schedule(for: plan)`: planificador, exports (imagen y texto), widget iOS, Apple Watch, creación/reconciliación de slots y sync de calendario. - UI: botón de ajustes en la fila de la semana (con punto cuando la semana está personalizada) → hoja *Solo esta semana* con los toggles de desayuno/comida/merienda/cena y fin de semana, botón para volver a los ajustes generales y confirmación cuando quitar un día o comida borra algo ya planificado. - Premium: crear/editar override requiere suscripción (`PremiumAccess.canCustomizeWeekSchedule`); los overrides ya guardados se respetan aunque caduque, para no borrar comidas planificadas. Free ve la hoja con el upsell y Aplicar deshabilitado. - Overrides incluidos en el snapshot de iCloud KV. - Cadenas en los 6 idiomas. Verificado: 51 tests unitarios en verde (12 nuevos, incluidos 4 de integración que comprueban que se crean los slots de finde/desayuno, que el reset los devuelve a los globales y que quitar una comida borra sus slots) + UI test que abre la hoja desde la home y comprueba el gate premium. Queda por probar a mano el camino de compra real (aplicar el override con premium activo en dispositivo/TestFlight).
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alexandrev/FamilyMealPlanner#32