29 lines
1.1 KiB
Swift
29 lines
1.1 KiB
Swift
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)
|
||
|
|
|
||
|
|
}
|