|
|
|
@ -4,28 +4,34 @@ import ( |
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// Saver is an interface for documents that can be saved
|
|
|
|
|
type Saver interface { |
|
|
|
|
Save(db *Database) error |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Deleter is an interface for documents that can be deleted
|
|
|
|
|
type Deleter interface { |
|
|
|
|
Delete(db *Database) error |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Loader is an interface for documents that can be loaded
|
|
|
|
|
type Loader interface { |
|
|
|
|
Load(db *Database, filters ...interface{}) error |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// BaseObjectID is an interface for documents that have objectId type for the _id field
|
|
|
|
|
type BaseObjectID interface { |
|
|
|
|
GetID() primitive.ObjectID |
|
|
|
|
SetID(id primitive.ObjectID) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// BaseString is an interface for documents that have string type for the _id field
|
|
|
|
|
type BaseString interface { |
|
|
|
|
GetID() string |
|
|
|
|
SetID(id string) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// BaseObject is an interface for documents that have object type for the _id field
|
|
|
|
|
type BaseObject interface { |
|
|
|
|
GetID() primitive.D |
|
|
|
|
SetID(id primitive.D) |
|
|
|
|