import SwiftData /// A protocol defining the interface for a todo repository. /// /// This protocol abstracts the underlying data persistence mechanism for todo tasks, /// allowing for dependency injection and easier testing. Implementations handle the /// storage and retrieval of Todo objects. protocol TodoRepository { /// Deletes a todo task from the repository. /// /// This method removes the specified todo from persistent storage. The deletion /// is typically performed immediately, though the actual persistence may be deferred /// until a save operation occurs depending on the implementation. /// /// - Parameter todo: The todo task to delete from the repository. func delete(_ todo: Todo) /// Inserts a new todo task into the repository. /// /// This method adds a new todo to persistent storage. The todo is typically /// tracked immediately, though the actual persistence may be deferred until a /// save operation occurs depending on the implementation. /// /// - Parameter todo: The todo task to insert into the repository. func insert(_ todo: Todo) }