Files
minstrel/internal/db/dbq/library_settings.sql.go
T
bvandeusenandClaude Opus 5.5 1d4ef1a23f docs: query comments say what each query selects and why, not how it came to be (#6277)
Rewrites the internal/db/queries comments to rule 32 and regenerates
dbq, whose doc comments and embedded SQL carry them. The bugs behind the
tiered mixes, the md5 order seed, the score bands and the round-robin
arms are restated as the constraint each one enforces; counts from one
library and stale cross-references are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:31:13 -04:00

163 lines
4.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: library_settings.sql
package dbq
import (
"context"
)
const countTracksUnder = `-- name: CountTracksUnder :one
SELECT count(*) FROM tracks WHERE starts_with(file_path, $1::text || '/')
`
func (q *Queries) CountTracksUnder(ctx context.Context, root string) (int64, error) {
row := q.db.QueryRow(ctx, countTracksUnder, root)
var count int64
err := row.Scan(&count)
return count, err
}
const getLibrarySettings = `-- name: GetLibrarySettings :one
SELECT id, scan_paths, updated_at FROM library_settings WHERE id = true
`
func (q *Queries) GetLibrarySettings(ctx context.Context) (LibrarySetting, error) {
row := q.db.QueryRow(ctx, getLibrarySettings)
var i LibrarySetting
err := row.Scan(&i.ID, &i.ScanPaths, &i.UpdatedAt)
return i, err
}
const rerootAlbumCoverPaths = `-- name: RerootAlbumCoverPaths :execrows
UPDATE albums
SET cover_art_path = $1::text || substr(cover_art_path, length($2::text) + 1)
WHERE starts_with(cover_art_path, $2::text || '/')
`
type RerootAlbumCoverPathsParams struct {
NewRoot string
OldRoot string
}
func (q *Queries) RerootAlbumCoverPaths(ctx context.Context, arg RerootAlbumCoverPathsParams) (int64, error) {
result, err := q.db.Exec(ctx, rerootAlbumCoverPaths, arg.NewRoot, arg.OldRoot)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const rerootGrabDestinations = `-- name: RerootGrabDestinations :execrows
UPDATE grabs
SET destination = $1::text || substr(destination, length($2::text) + 1)
WHERE destination = $2::text
OR starts_with(destination, $2::text || '/')
`
type RerootGrabDestinationsParams struct {
NewRoot string
OldRoot string
}
func (q *Queries) RerootGrabDestinations(ctx context.Context, arg RerootGrabDestinationsParams) (int64, error) {
result, err := q.db.Exec(ctx, rerootGrabDestinations, arg.NewRoot, arg.OldRoot)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const rerootImportRoot = `-- name: RerootImportRoot :execrows
UPDATE acquisition_settings
SET import_root = $1::text
WHERE import_root = $2::text
`
type RerootImportRootParams struct {
NewRoot string
OldRoot string
}
func (q *Queries) RerootImportRoot(ctx context.Context, arg RerootImportRootParams) (int64, error) {
result, err := q.db.Exec(ctx, rerootImportRoot, arg.NewRoot, arg.OldRoot)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const rerootTrackPaths = `-- name: RerootTrackPaths :execrows
UPDATE tracks
SET file_path = $1::text || substr(file_path, length($2::text) + 1)
WHERE starts_with(file_path, $2::text || '/')
`
type RerootTrackPathsParams struct {
NewRoot string
OldRoot string
}
// A library folder that moved: every path under old_root is rewritten
// to the same place under new_root, so the tracks keep their ids and with them
// their plays, likes and playlists. updated_at is left alone on purpose: the
// scan compares it with each file's mtime, and the files have not changed.
func (q *Queries) RerootTrackPaths(ctx context.Context, arg RerootTrackPathsParams) (int64, error) {
result, err := q.db.Exec(ctx, rerootTrackPaths, arg.NewRoot, arg.OldRoot)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const sampleTrackPathsUnder = `-- name: SampleTrackPathsUnder :many
SELECT file_path FROM tracks
WHERE starts_with(file_path, $1::text || '/') AND missing_since IS NULL
ORDER BY random()
LIMIT $2::int
`
type SampleTrackPathsUnderParams struct {
Root string
N int32
}
// A few present tracks under a folder, to check a move before rewriting it.
func (q *Queries) SampleTrackPathsUnder(ctx context.Context, arg SampleTrackPathsUnderParams) ([]string, error) {
rows, err := q.db.Query(ctx, sampleTrackPathsUnder, arg.Root, arg.N)
if err != nil {
return nil, err
}
defer rows.Close()
var items []string
for rows.Next() {
var file_path string
if err := rows.Scan(&file_path); err != nil {
return nil, err
}
items = append(items, file_path)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateLibraryScanPaths = `-- name: UpdateLibraryScanPaths :one
UPDATE library_settings
SET scan_paths = $1::text[],
updated_at = now()
WHERE id = true
RETURNING id, scan_paths, updated_at
`
func (q *Queries) UpdateLibraryScanPaths(ctx context.Context, scanPaths []string) (LibrarySetting, error) {
row := q.db.QueryRow(ctx, updateLibraryScanPaths, scanPaths)
var i LibrarySetting
err := row.Scan(&i.ID, &i.ScanPaths, &i.UpdatedAt)
return i, err
}