stash/pkg/sqlite/tables.go
WithoutPants 5495d72849 File storage rewrite (#2676)
* Restructure data layer part 2 (#2599)
* Refactor and separate image model
* Refactor image query builder
* Handle relationships in image query builder
* Remove relationship management methods
* Refactor gallery model/query builder
* Add scenes to gallery model
* Convert scene model
* Refactor scene models
* Remove unused methods
* Add unit tests for gallery
* Add image tests
* Add scene tests
* Convert unnecessary scene value pointers to values
* Convert unnecessary pointer values to values
* Refactor scene partial
* Add scene partial tests
* Refactor ImagePartial
* Add image partial tests
* Refactor gallery partial update
* Add partial gallery update tests
* Use zero/null package for null values
* Add files and scan system
* Add sqlite implementation for files/folders
* Add unit tests for files/folders
* Image refactors
* Update image data layer
* Refactor gallery model and creation
* Refactor scene model
* Refactor scenes
* Don't set title from filename
* Allow galleries to freely add/remove images
* Add multiple scene file support to graphql and UI
* Add multiple file support for images in graphql/UI
* Add multiple file for galleries in graphql/UI
* Remove use of some deprecated fields
* Remove scene path usage
* Remove gallery path usage
* Remove path from image
* Move funscript to video file
* Refactor caption detection
* Migrate existing data
* Add post commit/rollback hook system
* Lint. Comment out import/export tests
* Add WithDatabase read only wrapper
* Prepend tasks to list
* Add 32 pre-migration
* Add warnings in release and migration notes
2022-09-06 07:03:42 +00:00

194 lines
4.8 KiB
Go

package sqlite
import (
"github.com/doug-martin/goqu/v9"
_ "github.com/doug-martin/goqu/v9/dialect/sqlite3"
)
var dialect = goqu.Dialect("sqlite3")
var (
galleriesImagesJoinTable = goqu.T(galleriesImagesTable)
imagesTagsJoinTable = goqu.T(imagesTagsTable)
performersImagesJoinTable = goqu.T(performersImagesTable)
imagesFilesJoinTable = goqu.T(imagesFilesTable)
imagesQueryTable = goqu.T("images_query")
galleriesQueryTable = goqu.T("galleries_query")
scenesQueryTable = goqu.T("scenes_query")
galleriesFilesJoinTable = goqu.T(galleriesFilesTable)
galleriesTagsJoinTable = goqu.T(galleriesTagsTable)
performersGalleriesJoinTable = goqu.T(performersGalleriesTable)
galleriesScenesJoinTable = goqu.T(galleriesScenesTable)
scenesFilesJoinTable = goqu.T(scenesFilesTable)
scenesTagsJoinTable = goqu.T(scenesTagsTable)
scenesPerformersJoinTable = goqu.T(performersScenesTable)
scenesStashIDsJoinTable = goqu.T("scene_stash_ids")
scenesMoviesJoinTable = goqu.T(moviesScenesTable)
)
var (
imageTableMgr = &table{
table: goqu.T(imageTable),
idColumn: goqu.T(imageTable).Col(idColumn),
}
imageQueryTableMgr = &table{
table: imagesQueryTable,
idColumn: imagesQueryTable.Col(idColumn),
}
imagesFilesTableMgr = &relatedFilesTable{
table: table{
table: imagesFilesJoinTable,
idColumn: imagesFilesJoinTable.Col(imageIDColumn),
},
}
imageGalleriesTableMgr = &joinTable{
table: table{
table: galleriesImagesJoinTable,
idColumn: galleriesImagesJoinTable.Col(imageIDColumn),
},
fkColumn: galleriesImagesJoinTable.Col(galleryIDColumn),
}
imagesTagsTableMgr = &joinTable{
table: table{
table: imagesTagsJoinTable,
idColumn: imagesTagsJoinTable.Col(imageIDColumn),
},
fkColumn: imagesTagsJoinTable.Col(tagIDColumn),
}
imagesPerformersTableMgr = &joinTable{
table: table{
table: performersImagesJoinTable,
idColumn: performersImagesJoinTable.Col(imageIDColumn),
},
fkColumn: performersImagesJoinTable.Col(performerIDColumn),
}
)
var (
galleryTableMgr = &table{
table: goqu.T(galleryTable),
idColumn: goqu.T(galleryTable).Col(idColumn),
}
galleryQueryTableMgr = &table{
table: galleriesQueryTable,
idColumn: galleriesQueryTable.Col(idColumn),
}
galleriesFilesTableMgr = &relatedFilesTable{
table: table{
table: galleriesFilesJoinTable,
idColumn: galleriesFilesJoinTable.Col(galleryIDColumn),
},
}
galleriesTagsTableMgr = &joinTable{
table: table{
table: galleriesTagsJoinTable,
idColumn: galleriesTagsJoinTable.Col(galleryIDColumn),
},
fkColumn: galleriesTagsJoinTable.Col(tagIDColumn),
}
galleriesPerformersTableMgr = &joinTable{
table: table{
table: performersGalleriesJoinTable,
idColumn: performersGalleriesJoinTable.Col(galleryIDColumn),
},
fkColumn: performersGalleriesJoinTable.Col(performerIDColumn),
}
galleriesScenesTableMgr = &joinTable{
table: table{
table: galleriesScenesJoinTable,
idColumn: galleriesScenesJoinTable.Col(galleryIDColumn),
},
fkColumn: galleriesScenesJoinTable.Col(sceneIDColumn),
}
)
var (
sceneTableMgr = &table{
table: goqu.T(sceneTable),
idColumn: goqu.T(sceneTable).Col(idColumn),
}
sceneQueryTableMgr = &table{
table: scenesQueryTable,
idColumn: scenesQueryTable.Col(idColumn),
}
scenesFilesTableMgr = &relatedFilesTable{
table: table{
table: scenesFilesJoinTable,
idColumn: scenesFilesJoinTable.Col(sceneIDColumn),
},
}
scenesTagsTableMgr = &joinTable{
table: table{
table: scenesTagsJoinTable,
idColumn: scenesTagsJoinTable.Col(sceneIDColumn),
},
fkColumn: scenesTagsJoinTable.Col(tagIDColumn),
}
scenesPerformersTableMgr = &joinTable{
table: table{
table: scenesPerformersJoinTable,
idColumn: scenesPerformersJoinTable.Col(sceneIDColumn),
},
fkColumn: scenesPerformersJoinTable.Col(performerIDColumn),
}
scenesGalleriesTableMgr = galleriesScenesTableMgr.invert()
scenesStashIDsTableMgr = &stashIDTable{
table: table{
table: scenesStashIDsJoinTable,
idColumn: scenesStashIDsJoinTable.Col(sceneIDColumn),
},
}
scenesMoviesTableMgr = &scenesMoviesTable{
table: table{
table: scenesMoviesJoinTable,
idColumn: scenesMoviesJoinTable.Col(sceneIDColumn),
},
}
)
var (
fileTableMgr = &table{
table: goqu.T(fileTable),
idColumn: goqu.T(fileTable).Col(idColumn),
}
videoFileTableMgr = &table{
table: goqu.T(videoFileTable),
idColumn: goqu.T(videoFileTable).Col(fileIDColumn),
}
imageFileTableMgr = &table{
table: goqu.T(imageFileTable),
idColumn: goqu.T(imageFileTable).Col(fileIDColumn),
}
folderTableMgr = &table{
table: goqu.T(folderTable),
idColumn: goqu.T(folderTable).Col(idColumn),
}
fingerprintTableMgr = &table{
table: goqu.T(fingerprintTable),
idColumn: goqu.T(fingerprintTable).Col(idColumn),
}
)