huecos sin planificar y exclusiones en la lista de la compra
- MealSlot.isSkipped: opcion "No planificar esta comida" en el picker de hueco vacio — cuenta como resuelto (semana completa, notificaciones, stats) y el autocompletado lo respeta; vista gris con guion, tap para desmarcar; viaja en undo, snapshot KV (junto con isEatingOut, que faltaba en el payload) y exports (— en imagen, omitido en texto) - ShoppingItem.isDismissed: "Ya lo tengo" por ingrediente (swipe izquierdo) y "Ya esta hecho" por plato entero (boton en la cabecera de su seccion); van a la seccion "Ya en casa" con restauracion de un tap, y quedan fuera del export de texto. No se borran porque reconcile los recrearia - Esquema CloudKit Development: CD_isSkipped, CD_isDismissed y el record type CD_ShoppingItem entero, que no existia — la lista de la compra no estaba sincronizando entre dispositivos (mismo bug que photoData) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013H6bXqGX1ygwib1Dm3n3UG
This commit is contained in:
@@ -14,6 +14,9 @@ final class MealSlot {
|
||||
var calendarEventId: String?
|
||||
var isRuleOverridden: Bool = false
|
||||
var isEatingOut: Bool = false
|
||||
/// "Don't plan this meal": counts as resolved (like eating out) but shows
|
||||
/// as intentionally blank — autocomplete leaves it alone.
|
||||
var isSkipped: Bool = false
|
||||
|
||||
var weekPlan: WeekPlan?
|
||||
|
||||
@@ -25,7 +28,8 @@ final class MealSlot {
|
||||
secondaryDishId: UUID? = nil,
|
||||
calendarEventId: String? = nil,
|
||||
isRuleOverridden: Bool = false,
|
||||
isEatingOut: Bool = false
|
||||
isEatingOut: Bool = false,
|
||||
isSkipped: Bool = false
|
||||
) {
|
||||
self.id = id
|
||||
self.dayOfWeek = dayOfWeek
|
||||
@@ -35,6 +39,7 @@ final class MealSlot {
|
||||
self.calendarEventId = calendarEventId
|
||||
self.isRuleOverridden = isRuleOverridden
|
||||
self.isEatingOut = isEatingOut
|
||||
self.isSkipped = isSkipped
|
||||
}
|
||||
|
||||
var mealTypeEnum: MealType {
|
||||
|
||||
@@ -12,6 +12,9 @@ final class ShoppingItem {
|
||||
var title: String = ""
|
||||
var dishId: UUID?
|
||||
var isChecked: Bool = false
|
||||
/// "Already have it at home": kept out of the active list and the export,
|
||||
/// but not deleted — reconcile would recreate a deleted dish-derived line.
|
||||
var isDismissed: Bool = false
|
||||
var sortOrder: Int = 0
|
||||
var createdAt: Date = Date()
|
||||
|
||||
@@ -21,6 +24,7 @@ final class ShoppingItem {
|
||||
title: String,
|
||||
dishId: UUID? = nil,
|
||||
isChecked: Bool = false,
|
||||
isDismissed: Bool = false,
|
||||
sortOrder: Int = 0,
|
||||
createdAt: Date = Date()
|
||||
) {
|
||||
@@ -29,6 +33,7 @@ final class ShoppingItem {
|
||||
self.title = title
|
||||
self.dishId = dishId
|
||||
self.isChecked = isChecked
|
||||
self.isDismissed = isDismissed
|
||||
self.sortOrder = sortOrder
|
||||
self.createdAt = createdAt
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user