2024-01-04 17:55:26 +00:00
|
|
|
// Package repo provides the data access layer for the application.
|
2022-08-30 02:30:36 +00:00
|
|
|
package repo
|
|
|
|
|
2023-08-02 21:00:57 +00:00
|
|
|
import (
|
2024-02-04 00:09:07 +00:00
|
|
|
"github.com/hay-kot/homebox/backend/internal/core/blobstore"
|
2023-08-02 21:00:57 +00:00
|
|
|
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
|
|
|
|
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
|
|
|
)
|
2022-08-30 02:30:36 +00:00
|
|
|
|
|
|
|
// AllRepos is a container for all the repository interfaces
|
|
|
|
type AllRepos struct {
|
2022-09-12 22:47:27 +00:00
|
|
|
Users *UserRepository
|
|
|
|
AuthTokens *TokenRepository
|
|
|
|
Groups *GroupRepository
|
|
|
|
Locations *LocationRepository
|
|
|
|
Labels *LabelRepository
|
|
|
|
Items *ItemsRepository
|
|
|
|
Docs *DocumentRepository
|
|
|
|
Attachments *AttachmentRepo
|
2022-12-10 05:57:57 +00:00
|
|
|
MaintEntry *MaintenanceEntryRepository
|
2023-03-07 06:18:58 +00:00
|
|
|
Notifiers *NotifierRepository
|
2022-08-30 02:30:36 +00:00
|
|
|
}
|
|
|
|
|
2023-08-02 21:00:57 +00:00
|
|
|
func New(db *ent.Client, bus *eventbus.EventBus, root string) *AllRepos {
|
2022-08-30 02:30:36 +00:00
|
|
|
return &AllRepos{
|
2022-09-12 22:47:27 +00:00
|
|
|
Users: &UserRepository{db},
|
|
|
|
AuthTokens: &TokenRepository{db},
|
2023-03-21 19:32:48 +00:00
|
|
|
Groups: NewGroupRepository(db),
|
2023-08-02 21:00:57 +00:00
|
|
|
Locations: &LocationRepository{db, bus},
|
|
|
|
Labels: &LabelRepository{db, bus},
|
|
|
|
Items: &ItemsRepository{db, bus},
|
2024-02-04 00:09:07 +00:00
|
|
|
Docs: &DocumentRepository{db, blobstore.NewLocalBlobStore(root)},
|
2022-09-12 22:47:27 +00:00
|
|
|
Attachments: &AttachmentRepo{db},
|
2022-12-10 05:57:57 +00:00
|
|
|
MaintEntry: &MaintenanceEntryRepository{db},
|
2023-03-07 06:18:58 +00:00
|
|
|
Notifiers: NewNotifierRepository(db),
|
2022-08-30 02:30:36 +00:00
|
|
|
}
|
|
|
|
}
|