Defined the Todo model in the app target.

This commit is contained in:
2026-02-09 15:40:49 +01:00
parent e6e9afe7fa
commit 7c63e0d8f8
4 changed files with 46 additions and 15 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import SwiftUI
struct TodosApp: App { struct TodosApp: App {
var sharedModelContainer: ModelContainer = { var sharedModelContainer: ModelContainer = {
let schema = Schema([ let schema = Schema([
Item.self Todo.self
]) ])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
-11
View File
@@ -1,11 +0,0 @@
import Foundation
import SwiftData
@Model
final class Item {
var timestamp: Date
init(timestamp: Date) {
self.timestamp = timestamp
}
}
+42
View File
@@ -0,0 +1,42 @@
import Foundation
import SwiftData
/// Represents a todo task created by a user.
@Model
final class Todo {
// MARK: Properties
/// A date when the todo was completed, if applicable.
var completed: Date?
/// A date by which the todo should be completed.
var due: Date
/// An optional note providing additional details about the todo task.
var note: String?
/// The title of the todo task.
var title: String
// MARK: Initializers
/// Creates a new todo item.
/// - Parameters:
/// - title: The title of the todo item.
/// - note: An optional note providing additional details.
/// - due: The date by which the todo should be completed.
/// - completed: The date when the todo was completed, if applicable.
init(
title: String,
note: String? = nil,
due: Date,
completed: Date? = nil
) {
self.completed = completed
self.due = due
self.note = note
self.title = title
}
}
+3 -3
View File
@@ -7,7 +7,7 @@ struct ContentView: View {
private var modelContext private var modelContext
@Query @Query
private var items: [Item] private var items: [Todo]
var body: some View { var body: some View {
NavigationSplitView { NavigationSplitView {
@@ -43,7 +43,7 @@ struct ContentView: View {
private func addItem() { private func addItem() {
withAnimation { withAnimation {
let newItem = Item(timestamp: Date()) let newItem = Todo(title: "New Todo", due: Date())
modelContext.insert(newItem) modelContext.insert(newItem)
} }
} }
@@ -59,5 +59,5 @@ struct ContentView: View {
#Preview { #Preview {
ContentView() ContentView()
.modelContainer(for: Item.self, inMemory: true) .modelContainer(for: Todo.self, inMemory: true)
} }