SQLite model refactoring (#3791)

* Remove ID from PerformerPartial
* Separate studio model from sqlite model
* Separate movie model from sqlite model
* Separate tag model from sqlite model
* Separate saved filter model from sqlite model
* Separate scene marker model from sqlite model
* Separate gallery chapter model from sqlite model
* Move ErrNoRows checks into sqlite, improve empty result error messages
* Move SQLiteDate and SQLiteTimestamp to sqlite
* Use changesetTranslator everywhere, refactor for consistency
* Make PerformerStore.DestroyImage private
* Fix rating on movie create
This commit is contained in:
DingDongSoLong4
2023-06-15 04:46:09 +02:00
committed by GitHub
parent 9180a68c45
commit 1c13c9e1b1
150 changed files with 3279 additions and 3129 deletions

View File

@@ -64,16 +64,19 @@ func (e *MismatchedSchemaVersionError) Error() string {
}
type Database struct {
Blobs *BlobStore
File *FileStore
Folder *FolderStore
Image *ImageStore
Gallery *GalleryStore
Scene *SceneStore
Performer *PerformerStore
Studio *studioQueryBuilder
Tag *tagQueryBuilder
Movie *movieQueryBuilder
Blobs *BlobStore
File *FileStore
Folder *FolderStore
Image *ImageStore
Gallery *GalleryStore
GalleryChapter *GalleryChapterStore
Scene *SceneStore
SceneMarker *SceneMarkerStore
Performer *PerformerStore
Studio *StudioStore
Tag *TagStore
Movie *MovieStore
SavedFilter *SavedFilterStore
db *sqlx.DB
dbPath string
@@ -89,17 +92,20 @@ func NewDatabase() *Database {
blobStore := NewBlobStore(BlobStoreOptions{})
ret := &Database{
Blobs: blobStore,
File: fileStore,
Folder: folderStore,
Scene: NewSceneStore(fileStore, blobStore),
Image: NewImageStore(fileStore),
Gallery: NewGalleryStore(fileStore, folderStore),
Performer: NewPerformerStore(blobStore),
Studio: NewStudioReaderWriter(blobStore),
Tag: NewTagReaderWriter(blobStore),
Movie: NewMovieReaderWriter(blobStore),
lockChan: make(chan struct{}, 1),
Blobs: blobStore,
File: fileStore,
Folder: folderStore,
Scene: NewSceneStore(fileStore, blobStore),
SceneMarker: NewSceneMarkerStore(),
Image: NewImageStore(fileStore),
Gallery: NewGalleryStore(fileStore, folderStore),
GalleryChapter: NewGalleryChapterStore(),
Performer: NewPerformerStore(blobStore),
Studio: NewStudioStore(blobStore),
Tag: NewTagStore(blobStore),
Movie: NewMovieStore(blobStore),
SavedFilter: NewSavedFilterStore(),
lockChan: make(chan struct{}, 1),
}
return ret