import SwiftData /// A protocol defining the interface for a data repository. /// /// This protocol abstracts the underlying data persistence mechanism, allowing for /// dependency injection and easier testing. Implementations handle the storage and /// retrieval of model objects. protocol Repository { /// Deletes a model object from the repository. /// /// This method removes the specified object 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 model: The model object to delete from the repository. func delete(_ model: some PersistentModel) /// Inserts a new model object into the repository. /// /// This method adds a new object to persistent storage. The object is typically /// tracked immediately, though the actual persistence may be deferred until a /// save operation occurs depending on the implementation. /// /// - Parameter model: The model object to insert into the repository. func insert(_ model: some PersistentModel) }