import Foundation import SwiftData /// One line of the weekly shopping list. Items are either derived from a /// planned dish's ingredients (`dishId` set) or added free-hand by the user /// (`dishId == nil`). Check-off state persists across app launches. // CloudKit-compatible (2.0): no unique constraints, inline defaults everywhere. @Model final class ShoppingItem { var id: UUID = UUID() var weekStartDate: Date = Date() var title: String = "" var dishId: UUID? var isChecked: Bool = false var sortOrder: Int = 0 var createdAt: Date = Date() init( id: UUID = UUID(), weekStartDate: Date, title: String, dishId: UUID? = nil, isChecked: Bool = false, sortOrder: Int = 0, createdAt: Date = Date() ) { self.id = id self.weekStartDate = weekStartDate self.title = title self.dishId = dishId self.isChecked = isChecked self.sortOrder = sortOrder self.createdAt = createdAt } }