mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 11:16:37 +08:00
69 lines
2.6 KiB
Go
69 lines
2.6 KiB
Go
// Package repository 实现基于 GORM 的数据访问层。
|
|
// 每个方法接受 context.Context 以便后续插入取消/追踪。
|
|
//
|
|
// Repository 故意保持精简:它们只负责持久化数据,不处理业务逻辑。
|
|
// 业务逻辑位于 internal/service。
|
|
package repository
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
// Container 是所有 repositories 的注册表,注入到 services 中。
|
|
type Container struct {
|
|
DB *gorm.DB
|
|
User *UserRepository
|
|
Library *LibraryRepository
|
|
Media *MediaRepository
|
|
Series *SeriesRepository
|
|
History *HistoryRepository
|
|
Favorite *FavoriteRepository
|
|
Playlist *PlaylistRepository
|
|
Setting *SettingRepository
|
|
Log *AccessLogRepository
|
|
Permission *PermissionRepository
|
|
RefreshToken *RefreshTokenRepository
|
|
ApiConfig *ApiConfigRepository
|
|
PlayProfile *PlayProfileRepository
|
|
RegCode *RegistrationCodeRepository
|
|
SignIn *SignInRepository
|
|
UserDevice *UserDeviceRepository
|
|
StrmAccount *StrmAccountRepository
|
|
StrmSyncPath *StrmSyncPathRepository
|
|
StrmSyncRecord *StrmSyncRecordRepository
|
|
StrmDownload *StrmDownloadTaskRepository
|
|
StrmUpload *StrmUploadTaskRepository
|
|
StrmDirCache *StrmDirCacheRepository
|
|
ScrapeTask *ScrapeTaskRepository
|
|
EmbyMount *EmbyMountRepository
|
|
}
|
|
|
|
// New 将每个 repository 连接到单个 *gorm.DB。
|
|
func New(db *gorm.DB) *Container {
|
|
return &Container{
|
|
DB: db,
|
|
User: &UserRepository{db: db},
|
|
Library: &LibraryRepository{db: db},
|
|
Media: &MediaRepository{db: db},
|
|
Series: &SeriesRepository{db: db},
|
|
History: &HistoryRepository{db: db},
|
|
Favorite: &FavoriteRepository{db: db},
|
|
Playlist: &PlaylistRepository{db: db},
|
|
Setting: &SettingRepository{db: db},
|
|
Log: &AccessLogRepository{db: db},
|
|
Permission: &PermissionRepository{db: db},
|
|
RefreshToken: &RefreshTokenRepository{db: db},
|
|
ApiConfig: &ApiConfigRepository{db: db},
|
|
PlayProfile: &PlayProfileRepository{db: db},
|
|
RegCode: &RegistrationCodeRepository{db: db},
|
|
SignIn: &SignInRepository{db: db},
|
|
UserDevice: &UserDeviceRepository{db: db},
|
|
StrmAccount: &StrmAccountRepository{db: db},
|
|
StrmSyncPath: &StrmSyncPathRepository{db: db},
|
|
StrmSyncRecord: &StrmSyncRecordRepository{db: db},
|
|
StrmDownload: &StrmDownloadTaskRepository{db: db},
|
|
StrmUpload: &StrmUploadTaskRepository{db: db},
|
|
StrmDirCache: &StrmDirCacheRepository{db: db},
|
|
ScrapeTask: &ScrapeTaskRepository{db: db},
|
|
EmbyMount: &EmbyMountRepository{db: db},
|
|
}
|
|
}
|