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. @Model final class ShoppingItem { @Attribute(.unique) var id: UUID var weekStartDate: Date var title: String var dishId: UUID? var isChecked: Bool = false var sortOrder: Int = 0 var createdAt: 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 } }