reglas: los avisos se calculan del plan actual, no de una marca guardada
Un plato aparecia en la lista de incumplimientos sin explicacion (captura del usuario: "Ensalada campera"): findViolations listaba los slots con isRuleOverridden, una marca puesta al asignar que quedaba obsoleta cuando el conflicto ya se habia resuelto. Y al reves, editar una regla despues de planificar no detectaba nada. - findViolations recorre el plan y reporta solo lo que incumple AHORA, siempre con sus razones (nunca una entrada vacia) - MealSlot.isRuleIgnored: "Ignorar" pasa a ser persistente, porque si no el aviso recalculado volveria enseguida; se resetea al cambiar o quitar el plato del hueco - El triangulo del calendario usa tambien el estado real - Campo en el payload KV (opcional, retrocompatible) y en el esquema CloudKit de Development - 3 tests: marca obsoleta no se lista, regla endurecida despues se detecta, y lo ignorado no reaparece Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013H6bXqGX1ygwib1Dm3n3UG
This commit is contained in:
@@ -119,7 +119,8 @@ final class ICloudSyncService {
|
||||
calendarEventId: $0.calendarEventId,
|
||||
isRuleOverridden: $0.isRuleOverridden,
|
||||
isEatingOut: $0.isEatingOut,
|
||||
isSkipped: $0.isSkipped
|
||||
isSkipped: $0.isSkipped,
|
||||
isRuleIgnored: $0.isRuleIgnored
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -217,7 +218,8 @@ final class ICloudSyncService {
|
||||
calendarEventId: slotPayload.calendarEventId,
|
||||
isRuleOverridden: slotPayload.isRuleOverridden,
|
||||
isEatingOut: slotPayload.isEatingOut ?? false,
|
||||
isSkipped: slotPayload.isSkipped ?? false
|
||||
isSkipped: slotPayload.isSkipped ?? false,
|
||||
isRuleIgnored: slotPayload.isRuleIgnored ?? false
|
||||
)
|
||||
slot.weekPlan = plan
|
||||
plan.slotList.append(slot)
|
||||
@@ -301,4 +303,5 @@ private struct MealSlotPayload: Codable {
|
||||
let isRuleOverridden: Bool
|
||||
var isEatingOut: Bool?
|
||||
var isSkipped: Bool?
|
||||
var isRuleIgnored: Bool?
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user