db

package
v0.0.0-...-d771ed5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActivityLog

type ActivityLog struct {
	ID        string  `json:"id"`
	Type      string  `json:"type"`
	Category  string  `json:"category"`
	SeriesID  *string `json:"seriesId"`
	Title     string  `json:"title"`
	Detail    *string `json:"detail"`
	CreatedAt string  `json:"createdAt"`
}

type AnimeCourMonitored

type AnimeCourMonitored struct {
	SeriesID   string `json:"seriesId"`
	TvdbSeason int64  `json:"tvdbSeason"`
	Monitored  bool   `json:"monitored"`
	UpdatedAt  string `json:"updatedAt"`
}

type Blocklist

type Blocklist struct {
	ID           string  `json:"id"`
	SeriesID     string  `json:"seriesId"`
	EpisodeID    *string `json:"episodeId"`
	ReleaseGuid  string  `json:"releaseGuid"`
	ReleaseTitle string  `json:"releaseTitle"`
	IndexerID    *string `json:"indexerId"`
	Protocol     string  `json:"protocol"`
	Size         int64   `json:"size"`
	AddedAt      string  `json:"addedAt"`
	Notes        string  `json:"notes"`
	Reason       string  `json:"reason"`
	InfoHash     *string `json:"infoHash"`
}

type CountActivitiesParams

type CountActivitiesParams struct {
	Category interface{} `json:"category"`
	Since    interface{} `json:"since"`
}

type CountRecentStallsForEpisodeParams

type CountRecentStallsForEpisodeParams struct {
	SeriesID  string  `json:"seriesId"`
	EpisodeID *string `json:"episodeId"`
}

type CreateBlocklistEntryParams

type CreateBlocklistEntryParams struct {
	ID           string  `json:"id"`
	SeriesID     string  `json:"seriesId"`
	EpisodeID    *string `json:"episodeId"`
	ReleaseGuid  string  `json:"releaseGuid"`
	ReleaseTitle string  `json:"releaseTitle"`
	IndexerID    *string `json:"indexerId"`
	Protocol     string  `json:"protocol"`
	Size         int64   `json:"size"`
	AddedAt      string  `json:"addedAt"`
	Notes        string  `json:"notes"`
	Reason       string  `json:"reason"`
	InfoHash     *string `json:"infoHash"`
}

type CreateDownloadClientConfigParams

type CreateDownloadClientConfigParams struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Priority  int64  `json:"priority"`
	Settings  string `json:"settings"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type CreateEpisodeFileParams

type CreateEpisodeFileParams struct {
	ID          string `json:"id"`
	EpisodeID   string `json:"episodeId"`
	SeriesID    string `json:"seriesId"`
	Path        string `json:"path"`
	SizeBytes   int64  `json:"sizeBytes"`
	QualityJson string `json:"qualityJson"`
	ImportedAt  string `json:"importedAt"`
	IndexedAt   string `json:"indexedAt"`
}

type CreateEpisodeParams

type CreateEpisodeParams struct {
	ID             string  `json:"id"`
	SeriesID       string  `json:"seriesId"`
	SeasonID       string  `json:"seasonId"`
	SeasonNumber   int64   `json:"seasonNumber"`
	EpisodeNumber  int64   `json:"episodeNumber"`
	AbsoluteNumber *int64  `json:"absoluteNumber"`
	AirDate        *string `json:"airDate"`
	Title          string  `json:"title"`
	Overview       string  `json:"overview"`
	Monitored      bool    `json:"monitored"`
	HasFile        bool    `json:"hasFile"`
	StillPath      string  `json:"stillPath"`
	RuntimeMinutes int64   `json:"runtimeMinutes"`
}

type CreateGrabHistoryParams

type CreateGrabHistoryParams struct {
	ID                string  `json:"id"`
	SeriesID          string  `json:"seriesId"`
	EpisodeID         *string `json:"episodeId"`
	SeasonNumber      *int64  `json:"seasonNumber"`
	IndexerID         *string `json:"indexerId"`
	ReleaseGuid       string  `json:"releaseGuid"`
	ReleaseTitle      string  `json:"releaseTitle"`
	ReleaseSource     string  `json:"releaseSource"`
	ReleaseResolution string  `json:"releaseResolution"`
	ReleaseCodec      string  `json:"releaseCodec"`
	ReleaseHdr        string  `json:"releaseHdr"`
	Protocol          string  `json:"protocol"`
	Size              int64   `json:"size"`
	DownloadClientID  *string `json:"downloadClientId"`
	ClientItemID      *string `json:"clientItemId"`
	DownloadStatus    string  `json:"downloadStatus"`
	ScoreBreakdown    *string `json:"scoreBreakdown"`
	GrabbedAt         string  `json:"grabbedAt"`
	Source            string  `json:"source"`
	InfoHash          *string `json:"infoHash"`
}

type CreateImportExclusionParams

type CreateImportExclusionParams struct {
	ID        string `json:"id"`
	TmdbID    int64  `json:"tmdbId"`
	Title     string `json:"title"`
	Year      int64  `json:"year"`
	CreatedAt string `json:"createdAt"`
}

type CreateImportListConfigParams

type CreateImportListConfigParams struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	Kind             string `json:"kind"`
	Enabled          bool   `json:"enabled"`
	Settings         string `json:"settings"`
	SearchOnAdd      bool   `json:"searchOnAdd"`
	Monitor          bool   `json:"monitor"`
	MonitorType      string `json:"monitorType"`
	QualityProfileID string `json:"qualityProfileId"`
	LibraryID        string `json:"libraryId"`
	CreatedAt        string `json:"createdAt"`
	UpdatedAt        string `json:"updatedAt"`
}

type CreateIndexerConfigParams

type CreateIndexerConfigParams struct {
	ID         string `json:"id"`
	Name       string `json:"name"`
	Kind       string `json:"kind"`
	Enabled    bool   `json:"enabled"`
	Priority   int64  `json:"priority"`
	Settings   string `json:"settings"`
	MinSeeders int64  `json:"minSeeders"`
	CreatedAt  string `json:"createdAt"`
	UpdatedAt  string `json:"updatedAt"`
}

type CreateLibraryParams

type CreateLibraryParams struct {
	ID                      string  `json:"id"`
	Name                    string  `json:"name"`
	RootPath                string  `json:"rootPath"`
	DefaultQualityProfileID string  `json:"defaultQualityProfileId"`
	NamingFormat            *string `json:"namingFormat"`
	FolderFormat            *string `json:"folderFormat"`
	MinFreeSpaceGb          int64   `json:"minFreeSpaceGb"`
	TagsJson                string  `json:"tagsJson"`
	CreatedAt               string  `json:"createdAt"`
	UpdatedAt               string  `json:"updatedAt"`
}

type CreateMediaServerConfigParams

type CreateMediaServerConfigParams struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type CreateNotificationConfigParams

type CreateNotificationConfigParams struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	OnEvents  string `json:"onEvents"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type CreateQualityProfileParams

type CreateQualityProfileParams struct {
	ID                   string  `json:"id"`
	Name                 string  `json:"name"`
	CutoffJson           string  `json:"cutoffJson"`
	QualitiesJson        string  `json:"qualitiesJson"`
	UpgradeAllowed       bool    `json:"upgradeAllowed"`
	UpgradeUntilJson     *string `json:"upgradeUntilJson"`
	CreatedAt            string  `json:"createdAt"`
	UpdatedAt            string  `json:"updatedAt"`
	MinCustomFormatScore int64   `json:"minCustomFormatScore"`
	UpgradeUntilCfScore  int64   `json:"upgradeUntilCfScore"`
	ManagedByPulse       bool    `json:"managedByPulse"`
}

type CreateSeasonParams

type CreateSeasonParams struct {
	ID           string `json:"id"`
	SeriesID     string `json:"seriesId"`
	SeasonNumber int64  `json:"seasonNumber"`
	Monitored    bool   `json:"monitored"`
}

type CreateSeriesParams

type CreateSeriesParams struct {
	ID                  string  `json:"id"`
	TmdbID              int64   `json:"tmdbId"`
	ImdbID              *string `json:"imdbId"`
	Title               string  `json:"title"`
	SortTitle           string  `json:"sortTitle"`
	Year                int64   `json:"year"`
	Overview            string  `json:"overview"`
	RuntimeMinutes      *int64  `json:"runtimeMinutes"`
	GenresJson          string  `json:"genresJson"`
	PosterUrl           *string `json:"posterUrl"`
	FanartUrl           *string `json:"fanartUrl"`
	Status              string  `json:"status"`
	SeriesType          string  `json:"seriesType"`
	MonitorType         string  `json:"monitorType"`
	Network             *string `json:"network"`
	AirTime             *string `json:"airTime"`
	Certification       *string `json:"certification"`
	Monitored           bool    `json:"monitored"`
	LibraryID           string  `json:"libraryId"`
	QualityProfileID    string  `json:"qualityProfileId"`
	Path                *string `json:"path"`
	AddedAt             string  `json:"addedAt"`
	UpdatedAt           string  `json:"updatedAt"`
	MetadataRefreshedAt *string `json:"metadataRefreshedAt"`
	AlternateTitles     string  `json:"alternateTitles"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type DownloadClientConfig

type DownloadClientConfig struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Priority  int64  `json:"priority"`
	Settings  string `json:"settings"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type Episode

type Episode struct {
	ID             string  `json:"id"`
	SeriesID       string  `json:"seriesId"`
	SeasonID       string  `json:"seasonId"`
	SeasonNumber   int64   `json:"seasonNumber"`
	EpisodeNumber  int64   `json:"episodeNumber"`
	AbsoluteNumber *int64  `json:"absoluteNumber"`
	AirDate        *string `json:"airDate"`
	Title          string  `json:"title"`
	Overview       string  `json:"overview"`
	Monitored      bool    `json:"monitored"`
	HasFile        bool    `json:"hasFile"`
	StillPath      string  `json:"stillPath"`
	RuntimeMinutes int64   `json:"runtimeMinutes"`
}

type EpisodeFile

type EpisodeFile struct {
	ID          string `json:"id"`
	EpisodeID   string `json:"episodeId"`
	SeriesID    string `json:"seriesId"`
	Path        string `json:"path"`
	SizeBytes   int64  `json:"sizeBytes"`
	QualityJson string `json:"qualityJson"`
	ImportedAt  string `json:"importedAt"`
	IndexedAt   string `json:"indexedAt"`
}

type GetGrabStatsRow

type GetGrabStatsRow struct {
	TotalGrabs int64       `json:"totalGrabs"`
	Successful interface{} `json:"successful"`
	Failed     interface{} `json:"failed"`
}

type GetSeriesYearDistributionRow

type GetSeriesYearDistributionRow struct {
	Year  int64 `json:"year"`
	Count int64 `json:"count"`
}

type GetTopIndexersRow

type GetTopIndexersRow struct {
	IndexerID    *string     `json:"indexerId"`
	IndexerName  string      `json:"indexerName"`
	GrabCount    int64       `json:"grabCount"`
	SuccessCount interface{} `json:"successCount"`
}

type GrabHistory

type GrabHistory struct {
	ID                string  `json:"id"`
	SeriesID          string  `json:"seriesId"`
	EpisodeID         *string `json:"episodeId"`
	SeasonNumber      *int64  `json:"seasonNumber"`
	IndexerID         *string `json:"indexerId"`
	ReleaseGuid       string  `json:"releaseGuid"`
	ReleaseTitle      string  `json:"releaseTitle"`
	ReleaseSource     string  `json:"releaseSource"`
	ReleaseResolution string  `json:"releaseResolution"`
	ReleaseCodec      string  `json:"releaseCodec"`
	ReleaseHdr        string  `json:"releaseHdr"`
	Protocol          string  `json:"protocol"`
	Size              int64   `json:"size"`
	DownloadClientID  *string `json:"downloadClientId"`
	ClientItemID      *string `json:"clientItemId"`
	DownloadStatus    string  `json:"downloadStatus"`
	DownloadedBytes   int64   `json:"downloadedBytes"`
	ScoreBreakdown    *string `json:"scoreBreakdown"`
	GrabbedAt         string  `json:"grabbedAt"`
	Source            string  `json:"source"`
	InfoHash          *string `json:"infoHash"`
}

type ImportExclusion

type ImportExclusion struct {
	ID        string `json:"id"`
	TmdbID    int64  `json:"tmdbId"`
	Title     string `json:"title"`
	Year      int64  `json:"year"`
	CreatedAt string `json:"createdAt"`
}

type ImportListConfig

type ImportListConfig struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	Kind             string `json:"kind"`
	Enabled          bool   `json:"enabled"`
	Settings         string `json:"settings"`
	SearchOnAdd      bool   `json:"searchOnAdd"`
	Monitor          bool   `json:"monitor"`
	MonitorType      string `json:"monitorType"`
	QualityProfileID string `json:"qualityProfileId"`
	LibraryID        string `json:"libraryId"`
	CreatedAt        string `json:"createdAt"`
	UpdatedAt        string `json:"updatedAt"`
}

type IndexerConfig

type IndexerConfig struct {
	ID         string `json:"id"`
	Name       string `json:"name"`
	Kind       string `json:"kind"`
	Enabled    bool   `json:"enabled"`
	Priority   int64  `json:"priority"`
	Settings   string `json:"settings"`
	CreatedAt  string `json:"createdAt"`
	UpdatedAt  string `json:"updatedAt"`
	MinSeeders int64  `json:"minSeeders"`
}

type InsertActivityParams

type InsertActivityParams struct {
	ID        string  `json:"id"`
	Type      string  `json:"type"`
	Category  string  `json:"category"`
	SeriesID  *string `json:"seriesId"`
	Title     string  `json:"title"`
	Detail    *string `json:"detail"`
	CreatedAt string  `json:"createdAt"`
}

type InsertStatsSnapshotParams

type InsertStatsSnapshotParams struct {
	ID                string `json:"id"`
	TotalSeries       int64  `json:"totalSeries"`
	TotalEpisodes     int64  `json:"totalEpisodes"`
	MonitoredEpisodes int64  `json:"monitoredEpisodes"`
	WithFile          int64  `json:"withFile"`
	Missing           int64  `json:"missing"`
	TotalSizeBytes    int64  `json:"totalSizeBytes"`
	SnapshotAt        string `json:"snapshotAt"`
}

type IsBlocklistedByGuidOrInfoHashParams

type IsBlocklistedByGuidOrInfoHashParams struct {
	ReleaseGuid string  `json:"releaseGuid"`
	InfoHash    *string `json:"infoHash"`
}

type Library

type Library struct {
	ID                      string  `json:"id"`
	Name                    string  `json:"name"`
	RootPath                string  `json:"rootPath"`
	DefaultQualityProfileID string  `json:"defaultQualityProfileId"`
	NamingFormat            *string `json:"namingFormat"`
	FolderFormat            *string `json:"folderFormat"`
	MinFreeSpaceGb          int64   `json:"minFreeSpaceGb"`
	TagsJson                string  `json:"tagsJson"`
	CreatedAt               string  `json:"createdAt"`
	UpdatedAt               string  `json:"updatedAt"`
}

type ListActivitiesParams

type ListActivitiesParams struct {
	Category interface{} `json:"category"`
	Since    interface{} `json:"since"`
	Limit    int64       `json:"limit"`
}

type ListAllEpisodeFilesRow

type ListAllEpisodeFilesRow struct {
	ID        string `json:"id"`
	EpisodeID string `json:"episodeId"`
	SeriesID  string `json:"seriesId"`
	Path      string `json:"path"`
}

type ListBlocklistParams

type ListBlocklistParams struct {
	Limit  int64 `json:"limit"`
	Offset int64 `json:"offset"`
}

type ListBlocklistRow

type ListBlocklistRow struct {
	ID           string  `json:"id"`
	SeriesID     string  `json:"seriesId"`
	EpisodeID    *string `json:"episodeId"`
	ReleaseGuid  string  `json:"releaseGuid"`
	ReleaseTitle string  `json:"releaseTitle"`
	IndexerID    *string `json:"indexerId"`
	Protocol     string  `json:"protocol"`
	Size         int64   `json:"size"`
	AddedAt      string  `json:"addedAt"`
	Notes        string  `json:"notes"`
	Reason       string  `json:"reason"`
	InfoHash     *string `json:"infoHash"`
	SeriesTitle  string  `json:"seriesTitle"`
}

type ListEpisodeFileQualitiesWithSeriesIDsRow

type ListEpisodeFileQualitiesWithSeriesIDsRow struct {
	SeriesID    string `json:"seriesId"`
	QualityJson string `json:"qualityJson"`
}

type ListEpisodesByAirDateRangeParams

type ListEpisodesByAirDateRangeParams struct {
	AirDate   *string `json:"airDate"`
	AirDate_2 *string `json:"airDate2"`
}

type ListEpisodesByAirDateRangeRow

type ListEpisodesByAirDateRangeRow struct {
	ID             string  `json:"id"`
	SeriesID       string  `json:"seriesId"`
	SeasonID       string  `json:"seasonId"`
	SeasonNumber   int64   `json:"seasonNumber"`
	EpisodeNumber  int64   `json:"episodeNumber"`
	AbsoluteNumber *int64  `json:"absoluteNumber"`
	AirDate        *string `json:"airDate"`
	Title          string  `json:"title"`
	Overview       string  `json:"overview"`
	Monitored      bool    `json:"monitored"`
	HasFile        bool    `json:"hasFile"`
	StillPath      string  `json:"stillPath"`
	RuntimeMinutes int64   `json:"runtimeMinutes"`
	SeriesTitle    string  `json:"seriesTitle"`
}

type ListGrabHistoryByStatusSinceParams

type ListGrabHistoryByStatusSinceParams struct {
	Status string `json:"status"`
	Since  string `json:"since"`
	Limit  int64  `json:"limit"`
}

type ListGrabHistoryParams

type ListGrabHistoryParams struct {
	Limit  int64 `json:"limit"`
	Offset int64 `json:"offset"`
}

type ListMissingEpisodesParams

type ListMissingEpisodesParams struct {
	Limit  int64 `json:"limit"`
	Offset int64 `json:"offset"`
}

type ListMissingEpisodesWithSeriesParams

type ListMissingEpisodesWithSeriesParams struct {
	Limit  int64 `json:"limit"`
	Offset int64 `json:"offset"`
}

type ListMissingEpisodesWithSeriesRow

type ListMissingEpisodesWithSeriesRow struct {
	ID             string  `json:"id"`
	SeriesID       string  `json:"seriesId"`
	SeasonID       string  `json:"seasonId"`
	SeasonNumber   int64   `json:"seasonNumber"`
	EpisodeNumber  int64   `json:"episodeNumber"`
	AbsoluteNumber *int64  `json:"absoluteNumber"`
	AirDate        *string `json:"airDate"`
	Title          string  `json:"title"`
	Overview       string  `json:"overview"`
	Monitored      bool    `json:"monitored"`
	HasFile        bool    `json:"hasFile"`
	StillPath      string  `json:"stillPath"`
	RuntimeMinutes int64   `json:"runtimeMinutes"`
	SeriesTitle    string  `json:"seriesTitle"`
}

type ListSeriesByLibraryParams

type ListSeriesByLibraryParams struct {
	LibraryID string `json:"libraryId"`
	Limit     int64  `json:"limit"`
	Offset    int64  `json:"offset"`
}

type ListSeriesParams

type ListSeriesParams struct {
	Limit  int64 `json:"limit"`
	Offset int64 `json:"offset"`
}

type ListStorageSnapshotsRow

type ListStorageSnapshotsRow struct {
	SnapshotAt     string `json:"snapshotAt"`
	TotalSizeBytes int64  `json:"totalSizeBytes"`
	WithFile       int64  `json:"withFile"`
}

type MediaManagement

type MediaManagement struct {
	ID                       int64  `json:"id"`
	RenameEpisodes           bool   `json:"renameEpisodes"`
	StandardEpisodeFormat    string `json:"standardEpisodeFormat"`
	DailyEpisodeFormat       string `json:"dailyEpisodeFormat"`
	AnimeEpisodeFormat       string `json:"animeEpisodeFormat"`
	SeriesFolderFormat       string `json:"seriesFolderFormat"`
	SeasonFolderFormat       string `json:"seasonFolderFormat"`
	ColonReplacement         string `json:"colonReplacement"`
	ImportExtraFiles         bool   `json:"importExtraFiles"`
	ExtraFileExtensions      string `json:"extraFileExtensions"`
	UnmonitorDeletedEpisodes bool   `json:"unmonitorDeletedEpisodes"`
}

type MediaServerConfig

type MediaServerConfig struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type NotificationConfig

type NotificationConfig struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	OnEvents  string `json:"onEvents"`
	CreatedAt string `json:"createdAt"`
	UpdatedAt string `json:"updatedAt"`
}

type QualityDefinition

type QualityDefinition struct {
	ID            string  `json:"id"`
	Name          string  `json:"name"`
	Resolution    string  `json:"resolution"`
	Source        string  `json:"source"`
	Codec         string  `json:"codec"`
	Hdr           string  `json:"hdr"`
	MinSize       float64 `json:"minSize"`
	MaxSize       float64 `json:"maxSize"`
	PreferredSize float64 `json:"preferredSize"`
	SortOrder     int64   `json:"sortOrder"`
}

type QualityProfile

type QualityProfile struct {
	ID                   string  `json:"id"`
	Name                 string  `json:"name"`
	CutoffJson           string  `json:"cutoffJson"`
	QualitiesJson        string  `json:"qualitiesJson"`
	UpgradeAllowed       bool    `json:"upgradeAllowed"`
	UpgradeUntilJson     *string `json:"upgradeUntilJson"`
	MinCustomFormatScore int64   `json:"minCustomFormatScore"`
	UpgradeUntilCfScore  int64   `json:"upgradeUntilCfScore"`
	CreatedAt            string  `json:"createdAt"`
	UpdatedAt            string  `json:"updatedAt"`
	ManagedByPulse       bool    `json:"managedByPulse"`
}

type QualityProfileInUseParams

type QualityProfileInUseParams struct {
	QualityProfileID        string `json:"qualityProfileId"`
	DefaultQualityProfileID string `json:"defaultQualityProfileId"`
}

type Querier

type Querier interface {
	ClearBlocklist(ctx context.Context) error
	CountActivities(ctx context.Context, arg CountActivitiesParams) (int64, error)
	CountAllEpisodes(ctx context.Context) (int64, error)
	CountBlocklist(ctx context.Context) (int64, error)
	CountEpisodeFiles(ctx context.Context) (int64, error)
	CountEpisodeFilesBySeriesID(ctx context.Context, seriesID string) (int64, error)
	CountEpisodesBySeriesID(ctx context.Context, seriesID string) (int64, error)
	CountEpisodesWithFile(ctx context.Context) (int64, error)
	CountEpisodesWithFileBySeriesID(ctx context.Context, seriesID string) (int64, error)
	CountMissingEpisodes(ctx context.Context) (int64, error)
	CountMonitoredEpisodes(ctx context.Context) (int64, error)
	// Circuit breaker for auto-re-search: how many stall-reason blocklist
	// entries exist for this (series, episode) within the last 24 hours?
	// Auto-re-search caps at 3 to avoid infinite retry loops when every
	// release for an episode happens to be dead. Pass episode_id as a
	// sql.NullString; null matches blocklist rows where episode_id IS NULL.
	CountRecentStallsForEpisode(ctx context.Context, arg CountRecentStallsForEpisodeParams) (int64, error)
	CountSeries(ctx context.Context) (int64, error)
	CountSeriesAddedSince(ctx context.Context, addedAt string) (int64, error)
	CountSeriesByLibrary(ctx context.Context, libraryID string) (int64, error)
	CountSeriesInLibrary(ctx context.Context, libraryID string) (int64, error)
	CreateBlocklistEntry(ctx context.Context, arg CreateBlocklistEntryParams) (Blocklist, error)
	CreateDownloadClientConfig(ctx context.Context, arg CreateDownloadClientConfigParams) (DownloadClientConfig, error)
	CreateEpisode(ctx context.Context, arg CreateEpisodeParams) (Episode, error)
	CreateEpisodeFile(ctx context.Context, arg CreateEpisodeFileParams) (EpisodeFile, error)
	CreateGrabHistory(ctx context.Context, arg CreateGrabHistoryParams) (GrabHistory, error)
	CreateImportExclusion(ctx context.Context, arg CreateImportExclusionParams) (ImportExclusion, error)
	CreateImportListConfig(ctx context.Context, arg CreateImportListConfigParams) (ImportListConfig, error)
	CreateIndexerConfig(ctx context.Context, arg CreateIndexerConfigParams) (IndexerConfig, error)
	CreateLibrary(ctx context.Context, arg CreateLibraryParams) (Library, error)
	CreateMediaServerConfig(ctx context.Context, arg CreateMediaServerConfigParams) (MediaServerConfig, error)
	CreateNotificationConfig(ctx context.Context, arg CreateNotificationConfigParams) (NotificationConfig, error)
	CreateQualityProfile(ctx context.Context, arg CreateQualityProfileParams) (QualityProfile, error)
	CreateSeason(ctx context.Context, arg CreateSeasonParams) (Season, error)
	CreateSeries(ctx context.Context, arg CreateSeriesParams) (Series, error)
	DeleteAnimeCourMonitoredBySeriesID(ctx context.Context, seriesID string) error
	DeleteBlocklistEntry(ctx context.Context, id string) error
	DeleteBlocklistEntryByGUID(ctx context.Context, releaseGuid string) error
	DeleteDownloadClientConfig(ctx context.Context, id string) error
	DeleteEpisodeFile(ctx context.Context, id string) error
	DeleteEpisodeFilesBySeriesID(ctx context.Context, seriesID string) error
	DeleteEpisodesBySeriesID(ctx context.Context, seriesID string) error
	DeleteImportExclusion(ctx context.Context, id string) error
	DeleteImportListConfig(ctx context.Context, id string) error
	DeleteIndexerConfig(ctx context.Context, id string) error
	DeleteLibrary(ctx context.Context, id string) error
	DeleteMediaServerConfig(ctx context.Context, id string) error
	DeleteNotificationConfig(ctx context.Context, id string) error
	DeleteQualityProfile(ctx context.Context, id string) error
	DeleteSeasonsBySeriesID(ctx context.Context, seriesID string) error
	DeleteSeries(ctx context.Context, id string) error
	DeleteSetting(ctx context.Context, key string) error
	DetachQualityProfileFromPulse(ctx context.Context, id string) error
	GetDownloadClientConfig(ctx context.Context, id string) (DownloadClientConfig, error)
	GetEpisode(ctx context.Context, id string) (Episode, error)
	GetEpisodeFile(ctx context.Context, id string) (EpisodeFile, error)
	GetEpisodeFileByPath(ctx context.Context, path string) (EpisodeFile, error)
	GetGrabByClientItemID(ctx context.Context, clientItemID *string) (GrabHistory, error)
	GetGrabByID(ctx context.Context, id string) (GrabHistory, error)
	GetGrabByInfoHash(ctx context.Context, infoHash *string) (GrabHistory, error)
	GetGrabStats(ctx context.Context) (GetGrabStatsRow, error)
	GetImportExclusionByTMDBID(ctx context.Context, tmdbID int64) (ImportExclusion, error)
	GetImportListConfig(ctx context.Context, id string) (ImportListConfig, error)
	GetIndexerConfig(ctx context.Context, id string) (IndexerConfig, error)
	GetLibrary(ctx context.Context, id string) (Library, error)
	GetMediaManagement(ctx context.Context) (MediaManagement, error)
	GetMediaServerConfig(ctx context.Context, id string) (MediaServerConfig, error)
	GetNotificationConfig(ctx context.Context, id string) (NotificationConfig, error)
	GetQualityProfile(ctx context.Context, id string) (QualityProfile, error)
	GetSeason(ctx context.Context, id string) (Season, error)
	GetSeries(ctx context.Context, id string) (Series, error)
	GetSeriesByTMDBID(ctx context.Context, tmdbID int64) (Series, error)
	GetSeriesYearDistribution(ctx context.Context) ([]GetSeriesYearDistributionRow, error)
	GetSetting(ctx context.Context, key string) (string, error)
	GetTopIndexers(ctx context.Context) ([]GetTopIndexersRow, error)
	InsertActivity(ctx context.Context, arg InsertActivityParams) error
	InsertStatsSnapshot(ctx context.Context, arg InsertStatsSnapshotParams) error
	IsBlocklisted(ctx context.Context, releaseGuid string) (int64, error)
	// Two-keyed dedup: a release can be on the blocklist under either its
	// original indexer GUID OR its content info hash (which is stable across
	// indexers). The stall watcher populates info_hash when Haul has observed
	// the torrent, so different-GUID-same-content cases are caught.
	IsBlocklistedByGuidOrInfoHash(ctx context.Context, arg IsBlocklistedByGuidOrInfoHashParams) (int64, error)
	IsBlocklistedByTitle(ctx context.Context, releaseTitle string) (int64, error)
	LatestStatsSnapshot(ctx context.Context) (StatsSnapshot, error)
	ListActiveGrabs(ctx context.Context) ([]GrabHistory, error)
	ListActivities(ctx context.Context, arg ListActivitiesParams) ([]ActivityLog, error)
	ListAllEpisodeFilePaths(ctx context.Context) ([]string, error)
	// Used by the file-existence reconciler (QW5) to walk every recorded
	// file and stat it. Selects the minimum surface area - adding columns
	// here is fine, but the reconciler only needs id/episode_id/path to
	// decide whether to delete the row.
	ListAllEpisodeFiles(ctx context.Context) ([]ListAllEpisodeFilesRow, error)
	ListAllTMDBIDs(ctx context.Context) ([]int64, error)
	ListAnimeCourMonitored(ctx context.Context, seriesID string) ([]AnimeCourMonitored, error)
	ListBlocklist(ctx context.Context, arg ListBlocklistParams) ([]ListBlocklistRow, error)
	ListDownloadClientConfigs(ctx context.Context) ([]DownloadClientConfig, error)
	ListEnabledDownloadClients(ctx context.Context) ([]DownloadClientConfig, error)
	ListEnabledImportLists(ctx context.Context) ([]ImportListConfig, error)
	ListEnabledIndexers(ctx context.Context) ([]IndexerConfig, error)
	ListEnabledMediaServers(ctx context.Context) ([]MediaServerConfig, error)
	ListEnabledNotifications(ctx context.Context) ([]NotificationConfig, error)
	ListEpisodeFileQualities(ctx context.Context) ([]string, error)
	ListEpisodeFileQualitiesWithSeriesIDs(ctx context.Context) ([]ListEpisodeFileQualitiesWithSeriesIDsRow, error)
	ListEpisodeFilesByEpisodeID(ctx context.Context, episodeID string) ([]EpisodeFile, error)
	ListEpisodeFilesBySeriesID(ctx context.Context, seriesID string) ([]EpisodeFile, error)
	ListEpisodesByAirDateRange(ctx context.Context, arg ListEpisodesByAirDateRangeParams) ([]ListEpisodesByAirDateRangeRow, error)
	ListEpisodesBySeasonID(ctx context.Context, seasonID string) ([]Episode, error)
	ListEpisodesBySeriesID(ctx context.Context, seriesID string) ([]Episode, error)
	ListExcludedTMDBIDs(ctx context.Context) ([]int64, error)
	ListGrabHistory(ctx context.Context, arg ListGrabHistoryParams) ([]GrabHistory, error)
	ListGrabHistoryByEpisode(ctx context.Context, episodeID *string) ([]GrabHistory, error)
	ListGrabHistoryBySeries(ctx context.Context, seriesID string) ([]GrabHistory, error)
	// Used by the Activity page's "Recently imported" and "Needs attention" rails
	// to window grabs by terminal status and time. grab_history.grabbed_at is
	// TEXT-encoded RFC3339 so the comparison is lexicographic but order-preserving.
	ListGrabHistoryByStatusSince(ctx context.Context, arg ListGrabHistoryByStatusSinceParams) ([]GrabHistory, error)
	ListImportExclusions(ctx context.Context) ([]ImportExclusion, error)
	ListImportListConfigs(ctx context.Context) ([]ImportListConfig, error)
	ListIndexerConfigs(ctx context.Context) ([]IndexerConfig, error)
	ListLibraries(ctx context.Context) ([]Library, error)
	ListManagedQualityProfiles(ctx context.Context) ([]QualityProfile, error)
	ListMediaServerConfigs(ctx context.Context) ([]MediaServerConfig, error)
	ListMissingEpisodes(ctx context.Context, arg ListMissingEpisodesParams) ([]Episode, error)
	ListMissingEpisodesWithSeries(ctx context.Context, arg ListMissingEpisodesWithSeriesParams) ([]ListMissingEpisodesWithSeriesRow, error)
	ListMonitoredSeries(ctx context.Context) ([]Series, error)
	ListNotificationConfigs(ctx context.Context) ([]NotificationConfig, error)
	ListQualityDefinitions(ctx context.Context) ([]QualityDefinition, error)
	ListQualityProfiles(ctx context.Context) ([]QualityProfile, error)
	ListSeasonsBySeriesID(ctx context.Context, seriesID string) ([]Season, error)
	ListSeries(ctx context.Context, arg ListSeriesParams) ([]Series, error)
	ListSeriesByLibrary(ctx context.Context, arg ListSeriesByLibraryParams) ([]Series, error)
	ListSeriesGenresJSON(ctx context.Context) ([]string, error)
	// Stuck-downloading grabs that the stallwatcher should expire because
	// they can't make progress. Two cohorts:
	//   1. info_hash IS NULL/empty: pilot recorded the grab but never got an
	//      info_hash back from the download client. The stallwatcher's
	//      info_hash-keyed pipeline is blind to these - they sit in
	//      `downloading` forever. We expire them by age.
	//   2. info_hash IS set: stallwatcher already has a better signal (haul
	//      reports the stall reason). Those are handled by the haul-stall
	//      path; not returned here.
	// Returned rows are old enough that the operator's expectation is "this
	// should have completed by now or be reported as stalled."
	ListStaleActiveGrabs(ctx context.Context, olderThan string) ([]GrabHistory, error)
	ListStatsSnapshots(ctx context.Context, limit int64) ([]StatsSnapshot, error)
	ListStorageSnapshots(ctx context.Context, limit int64) ([]ListStorageSnapshotsRow, error)
	MarkGrabRemoved(ctx context.Context, id string) error
	PruneActivities(ctx context.Context, createdAt string) error
	QualityProfileInUse(ctx context.Context, arg QualityProfileInUseParams) (int64, error)
	SetSetting(ctx context.Context, arg SetSettingParams) error
	SumEpisodeFileSize(ctx context.Context) (interface{}, error)
	UpdateDownloadClientConfig(ctx context.Context, arg UpdateDownloadClientConfigParams) (DownloadClientConfig, error)
	UpdateEpisode(ctx context.Context, arg UpdateEpisodeParams) (Episode, error)
	// Backfill or correct the absolute episode number. Used by the refresh
	// path when a series is newly flagged as anime - its existing rows have
	// absolute_number = NULL and need to be filled in retroactively.
	UpdateEpisodeAbsoluteNumber(ctx context.Context, arg UpdateEpisodeAbsoluteNumberParams) error
	UpdateEpisodeFilePath(ctx context.Context, arg UpdateEpisodeFilePathParams) error
	// Focused setter for the file-existence reconciler (QW5), which flips
	// has_file=FALSE when the underlying file is gone. Adding it instead
	// of reusing UpdateEpisode avoids a read-modify-write of every metadata
	// field for what is logically a single-bit change.
	UpdateEpisodeHasFile(ctx context.Context, arg UpdateEpisodeHasFileParams) error
	UpdateEpisodeMonitored(ctx context.Context, arg UpdateEpisodeMonitoredParams) error
	UpdateEpisodesMonitoredBySeason(ctx context.Context, arg UpdateEpisodesMonitoredBySeasonParams) error
	UpdateGrabDownloadClient(ctx context.Context, arg UpdateGrabDownloadClientParams) error
	UpdateGrabInfoHash(ctx context.Context, arg UpdateGrabInfoHashParams) error
	UpdateGrabStatus(ctx context.Context, arg UpdateGrabStatusParams) error
	UpdateImportListConfig(ctx context.Context, arg UpdateImportListConfigParams) (ImportListConfig, error)
	UpdateIndexerConfig(ctx context.Context, arg UpdateIndexerConfigParams) (IndexerConfig, error)
	UpdateLibrary(ctx context.Context, arg UpdateLibraryParams) (Library, error)
	UpdateMediaManagement(ctx context.Context, arg UpdateMediaManagementParams) (MediaManagement, error)
	UpdateMediaServerConfig(ctx context.Context, arg UpdateMediaServerConfigParams) (MediaServerConfig, error)
	UpdateNotificationConfig(ctx context.Context, arg UpdateNotificationConfigParams) (NotificationConfig, error)
	UpdateQualityDefinitionSizes(ctx context.Context, arg UpdateQualityDefinitionSizesParams) error
	UpdateQualityProfile(ctx context.Context, arg UpdateQualityProfileParams) (QualityProfile, error)
	UpdateSeasonMonitored(ctx context.Context, arg UpdateSeasonMonitoredParams) error
	UpdateSeries(ctx context.Context, arg UpdateSeriesParams) (Series, error)
	UpdateSeriesMetadata(ctx context.Context, arg UpdateSeriesMetadataParams) (Series, error)
	UpsertAnimeCourMonitored(ctx context.Context, arg UpsertAnimeCourMonitoredParams) error
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) ClearBlocklist

func (q *Queries) ClearBlocklist(ctx context.Context) error

func (*Queries) CountActivities

func (q *Queries) CountActivities(ctx context.Context, arg CountActivitiesParams) (int64, error)

func (*Queries) CountAllEpisodes

func (q *Queries) CountAllEpisodes(ctx context.Context) (int64, error)

func (*Queries) CountBlocklist

func (q *Queries) CountBlocklist(ctx context.Context) (int64, error)

func (*Queries) CountEpisodeFiles

func (q *Queries) CountEpisodeFiles(ctx context.Context) (int64, error)

func (*Queries) CountEpisodeFilesBySeriesID

func (q *Queries) CountEpisodeFilesBySeriesID(ctx context.Context, seriesID string) (int64, error)

func (*Queries) CountEpisodesBySeriesID

func (q *Queries) CountEpisodesBySeriesID(ctx context.Context, seriesID string) (int64, error)

func (*Queries) CountEpisodesWithFile

func (q *Queries) CountEpisodesWithFile(ctx context.Context) (int64, error)

func (*Queries) CountEpisodesWithFileBySeriesID

func (q *Queries) CountEpisodesWithFileBySeriesID(ctx context.Context, seriesID string) (int64, error)

func (*Queries) CountMissingEpisodes

func (q *Queries) CountMissingEpisodes(ctx context.Context) (int64, error)

func (*Queries) CountMonitoredEpisodes

func (q *Queries) CountMonitoredEpisodes(ctx context.Context) (int64, error)

func (*Queries) CountRecentStallsForEpisode

func (q *Queries) CountRecentStallsForEpisode(ctx context.Context, arg CountRecentStallsForEpisodeParams) (int64, error)

Circuit breaker for auto-re-search: how many stall-reason blocklist entries exist for this (series, episode) within the last 24 hours? Auto-re-search caps at 3 to avoid infinite retry loops when every release for an episode happens to be dead. Pass episode_id as a sql.NullString; null matches blocklist rows where episode_id IS NULL.

func (*Queries) CountSeries

func (q *Queries) CountSeries(ctx context.Context) (int64, error)

func (*Queries) CountSeriesAddedSince

func (q *Queries) CountSeriesAddedSince(ctx context.Context, addedAt string) (int64, error)

func (*Queries) CountSeriesByLibrary

func (q *Queries) CountSeriesByLibrary(ctx context.Context, libraryID string) (int64, error)

func (*Queries) CountSeriesInLibrary

func (q *Queries) CountSeriesInLibrary(ctx context.Context, libraryID string) (int64, error)

func (*Queries) CreateBlocklistEntry

func (q *Queries) CreateBlocklistEntry(ctx context.Context, arg CreateBlocklistEntryParams) (Blocklist, error)

func (*Queries) CreateDownloadClientConfig

func (q *Queries) CreateDownloadClientConfig(ctx context.Context, arg CreateDownloadClientConfigParams) (DownloadClientConfig, error)

func (*Queries) CreateEpisode

func (q *Queries) CreateEpisode(ctx context.Context, arg CreateEpisodeParams) (Episode, error)

func (*Queries) CreateEpisodeFile

func (q *Queries) CreateEpisodeFile(ctx context.Context, arg CreateEpisodeFileParams) (EpisodeFile, error)

func (*Queries) CreateGrabHistory

func (q *Queries) CreateGrabHistory(ctx context.Context, arg CreateGrabHistoryParams) (GrabHistory, error)

func (*Queries) CreateImportExclusion

func (q *Queries) CreateImportExclusion(ctx context.Context, arg CreateImportExclusionParams) (ImportExclusion, error)

func (*Queries) CreateImportListConfig

func (q *Queries) CreateImportListConfig(ctx context.Context, arg CreateImportListConfigParams) (ImportListConfig, error)

func (*Queries) CreateIndexerConfig

func (q *Queries) CreateIndexerConfig(ctx context.Context, arg CreateIndexerConfigParams) (IndexerConfig, error)

func (*Queries) CreateLibrary

func (q *Queries) CreateLibrary(ctx context.Context, arg CreateLibraryParams) (Library, error)

func (*Queries) CreateMediaServerConfig

func (q *Queries) CreateMediaServerConfig(ctx context.Context, arg CreateMediaServerConfigParams) (MediaServerConfig, error)

func (*Queries) CreateNotificationConfig

func (q *Queries) CreateNotificationConfig(ctx context.Context, arg CreateNotificationConfigParams) (NotificationConfig, error)

func (*Queries) CreateQualityProfile

func (q *Queries) CreateQualityProfile(ctx context.Context, arg CreateQualityProfileParams) (QualityProfile, error)

func (*Queries) CreateSeason

func (q *Queries) CreateSeason(ctx context.Context, arg CreateSeasonParams) (Season, error)

func (*Queries) CreateSeries

func (q *Queries) CreateSeries(ctx context.Context, arg CreateSeriesParams) (Series, error)

func (*Queries) DeleteAnimeCourMonitoredBySeriesID

func (q *Queries) DeleteAnimeCourMonitoredBySeriesID(ctx context.Context, seriesID string) error

func (*Queries) DeleteBlocklistEntry

func (q *Queries) DeleteBlocklistEntry(ctx context.Context, id string) error

func (*Queries) DeleteBlocklistEntryByGUID

func (q *Queries) DeleteBlocklistEntryByGUID(ctx context.Context, releaseGuid string) error

func (*Queries) DeleteDownloadClientConfig

func (q *Queries) DeleteDownloadClientConfig(ctx context.Context, id string) error

func (*Queries) DeleteEpisodeFile

func (q *Queries) DeleteEpisodeFile(ctx context.Context, id string) error

func (*Queries) DeleteEpisodeFilesBySeriesID

func (q *Queries) DeleteEpisodeFilesBySeriesID(ctx context.Context, seriesID string) error

func (*Queries) DeleteEpisodesBySeriesID

func (q *Queries) DeleteEpisodesBySeriesID(ctx context.Context, seriesID string) error

func (*Queries) DeleteImportExclusion

func (q *Queries) DeleteImportExclusion(ctx context.Context, id string) error

func (*Queries) DeleteImportListConfig

func (q *Queries) DeleteImportListConfig(ctx context.Context, id string) error

func (*Queries) DeleteIndexerConfig

func (q *Queries) DeleteIndexerConfig(ctx context.Context, id string) error

func (*Queries) DeleteLibrary

func (q *Queries) DeleteLibrary(ctx context.Context, id string) error

func (*Queries) DeleteMediaServerConfig

func (q *Queries) DeleteMediaServerConfig(ctx context.Context, id string) error

func (*Queries) DeleteNotificationConfig

func (q *Queries) DeleteNotificationConfig(ctx context.Context, id string) error

func (*Queries) DeleteQualityProfile

func (q *Queries) DeleteQualityProfile(ctx context.Context, id string) error

func (*Queries) DeleteSeasonsBySeriesID

func (q *Queries) DeleteSeasonsBySeriesID(ctx context.Context, seriesID string) error

func (*Queries) DeleteSeries

func (q *Queries) DeleteSeries(ctx context.Context, id string) error

func (*Queries) DeleteSetting

func (q *Queries) DeleteSetting(ctx context.Context, key string) error

func (*Queries) DetachQualityProfileFromPulse

func (q *Queries) DetachQualityProfileFromPulse(ctx context.Context, id string) error

func (*Queries) GetDownloadClientConfig

func (q *Queries) GetDownloadClientConfig(ctx context.Context, id string) (DownloadClientConfig, error)

func (*Queries) GetEpisode

func (q *Queries) GetEpisode(ctx context.Context, id string) (Episode, error)

func (*Queries) GetEpisodeFile

func (q *Queries) GetEpisodeFile(ctx context.Context, id string) (EpisodeFile, error)

func (*Queries) GetEpisodeFileByPath

func (q *Queries) GetEpisodeFileByPath(ctx context.Context, path string) (EpisodeFile, error)

func (*Queries) GetGrabByClientItemID

func (q *Queries) GetGrabByClientItemID(ctx context.Context, clientItemID *string) (GrabHistory, error)

func (*Queries) GetGrabByID

func (q *Queries) GetGrabByID(ctx context.Context, id string) (GrabHistory, error)

func (*Queries) GetGrabByInfoHash

func (q *Queries) GetGrabByInfoHash(ctx context.Context, infoHash *string) (GrabHistory, error)

func (*Queries) GetGrabStats

func (q *Queries) GetGrabStats(ctx context.Context) (GetGrabStatsRow, error)

func (*Queries) GetImportExclusionByTMDBID

func (q *Queries) GetImportExclusionByTMDBID(ctx context.Context, tmdbID int64) (ImportExclusion, error)

func (*Queries) GetImportListConfig

func (q *Queries) GetImportListConfig(ctx context.Context, id string) (ImportListConfig, error)

func (*Queries) GetIndexerConfig

func (q *Queries) GetIndexerConfig(ctx context.Context, id string) (IndexerConfig, error)

func (*Queries) GetLibrary

func (q *Queries) GetLibrary(ctx context.Context, id string) (Library, error)

func (*Queries) GetMediaManagement

func (q *Queries) GetMediaManagement(ctx context.Context) (MediaManagement, error)

func (*Queries) GetMediaServerConfig

func (q *Queries) GetMediaServerConfig(ctx context.Context, id string) (MediaServerConfig, error)

func (*Queries) GetNotificationConfig

func (q *Queries) GetNotificationConfig(ctx context.Context, id string) (NotificationConfig, error)

func (*Queries) GetQualityProfile

func (q *Queries) GetQualityProfile(ctx context.Context, id string) (QualityProfile, error)

func (*Queries) GetSeason

func (q *Queries) GetSeason(ctx context.Context, id string) (Season, error)

func (*Queries) GetSeries

func (q *Queries) GetSeries(ctx context.Context, id string) (Series, error)

func (*Queries) GetSeriesByTMDBID

func (q *Queries) GetSeriesByTMDBID(ctx context.Context, tmdbID int64) (Series, error)

func (*Queries) GetSeriesYearDistribution

func (q *Queries) GetSeriesYearDistribution(ctx context.Context) ([]GetSeriesYearDistributionRow, error)

func (*Queries) GetSetting

func (q *Queries) GetSetting(ctx context.Context, key string) (string, error)

func (*Queries) GetTopIndexers

func (q *Queries) GetTopIndexers(ctx context.Context) ([]GetTopIndexersRow, error)

func (*Queries) InsertActivity

func (q *Queries) InsertActivity(ctx context.Context, arg InsertActivityParams) error

func (*Queries) InsertStatsSnapshot

func (q *Queries) InsertStatsSnapshot(ctx context.Context, arg InsertStatsSnapshotParams) error

func (*Queries) IsBlocklisted

func (q *Queries) IsBlocklisted(ctx context.Context, releaseGuid string) (int64, error)

func (*Queries) IsBlocklistedByGuidOrInfoHash

func (q *Queries) IsBlocklistedByGuidOrInfoHash(ctx context.Context, arg IsBlocklistedByGuidOrInfoHashParams) (int64, error)

Two-keyed dedup: a release can be on the blocklist under either its original indexer GUID OR its content info hash (which is stable across indexers). The stall watcher populates info_hash when Haul has observed the torrent, so different-GUID-same-content cases are caught.

func (*Queries) IsBlocklistedByTitle

func (q *Queries) IsBlocklistedByTitle(ctx context.Context, releaseTitle string) (int64, error)

func (*Queries) LatestStatsSnapshot

func (q *Queries) LatestStatsSnapshot(ctx context.Context) (StatsSnapshot, error)

func (*Queries) ListActiveGrabs

func (q *Queries) ListActiveGrabs(ctx context.Context) ([]GrabHistory, error)

func (*Queries) ListActivities

func (q *Queries) ListActivities(ctx context.Context, arg ListActivitiesParams) ([]ActivityLog, error)

func (*Queries) ListAllEpisodeFilePaths

func (q *Queries) ListAllEpisodeFilePaths(ctx context.Context) ([]string, error)

func (*Queries) ListAllEpisodeFiles

func (q *Queries) ListAllEpisodeFiles(ctx context.Context) ([]ListAllEpisodeFilesRow, error)

Used by the file-existence reconciler (QW5) to walk every recorded file and stat it. Selects the minimum surface area - adding columns here is fine, but the reconciler only needs id/episode_id/path to decide whether to delete the row.

func (*Queries) ListAllTMDBIDs

func (q *Queries) ListAllTMDBIDs(ctx context.Context) ([]int64, error)

func (*Queries) ListAnimeCourMonitored

func (q *Queries) ListAnimeCourMonitored(ctx context.Context, seriesID string) ([]AnimeCourMonitored, error)

func (*Queries) ListBlocklist

func (q *Queries) ListBlocklist(ctx context.Context, arg ListBlocklistParams) ([]ListBlocklistRow, error)

func (*Queries) ListDownloadClientConfigs

func (q *Queries) ListDownloadClientConfigs(ctx context.Context) ([]DownloadClientConfig, error)

func (*Queries) ListEnabledDownloadClients

func (q *Queries) ListEnabledDownloadClients(ctx context.Context) ([]DownloadClientConfig, error)

func (*Queries) ListEnabledImportLists

func (q *Queries) ListEnabledImportLists(ctx context.Context) ([]ImportListConfig, error)

func (*Queries) ListEnabledIndexers

func (q *Queries) ListEnabledIndexers(ctx context.Context) ([]IndexerConfig, error)

func (*Queries) ListEnabledMediaServers

func (q *Queries) ListEnabledMediaServers(ctx context.Context) ([]MediaServerConfig, error)

func (*Queries) ListEnabledNotifications

func (q *Queries) ListEnabledNotifications(ctx context.Context) ([]NotificationConfig, error)

func (*Queries) ListEpisodeFileQualities

func (q *Queries) ListEpisodeFileQualities(ctx context.Context) ([]string, error)

func (*Queries) ListEpisodeFileQualitiesWithSeriesIDs

func (q *Queries) ListEpisodeFileQualitiesWithSeriesIDs(ctx context.Context) ([]ListEpisodeFileQualitiesWithSeriesIDsRow, error)

func (*Queries) ListEpisodeFilesByEpisodeID

func (q *Queries) ListEpisodeFilesByEpisodeID(ctx context.Context, episodeID string) ([]EpisodeFile, error)

func (*Queries) ListEpisodeFilesBySeriesID

func (q *Queries) ListEpisodeFilesBySeriesID(ctx context.Context, seriesID string) ([]EpisodeFile, error)

func (*Queries) ListEpisodesByAirDateRange

func (q *Queries) ListEpisodesByAirDateRange(ctx context.Context, arg ListEpisodesByAirDateRangeParams) ([]ListEpisodesByAirDateRangeRow, error)

func (*Queries) ListEpisodesBySeasonID

func (q *Queries) ListEpisodesBySeasonID(ctx context.Context, seasonID string) ([]Episode, error)

func (*Queries) ListEpisodesBySeriesID

func (q *Queries) ListEpisodesBySeriesID(ctx context.Context, seriesID string) ([]Episode, error)

func (*Queries) ListExcludedTMDBIDs

func (q *Queries) ListExcludedTMDBIDs(ctx context.Context) ([]int64, error)

func (*Queries) ListGrabHistory

func (q *Queries) ListGrabHistory(ctx context.Context, arg ListGrabHistoryParams) ([]GrabHistory, error)

func (*Queries) ListGrabHistoryByEpisode

func (q *Queries) ListGrabHistoryByEpisode(ctx context.Context, episodeID *string) ([]GrabHistory, error)

func (*Queries) ListGrabHistoryBySeries

func (q *Queries) ListGrabHistoryBySeries(ctx context.Context, seriesID string) ([]GrabHistory, error)

func (*Queries) ListGrabHistoryByStatusSince

func (q *Queries) ListGrabHistoryByStatusSince(ctx context.Context, arg ListGrabHistoryByStatusSinceParams) ([]GrabHistory, error)

Used by the Activity page's "Recently imported" and "Needs attention" rails to window grabs by terminal status and time. grab_history.grabbed_at is TEXT-encoded RFC3339 so the comparison is lexicographic but order-preserving.

func (*Queries) ListImportExclusions

func (q *Queries) ListImportExclusions(ctx context.Context) ([]ImportExclusion, error)

func (*Queries) ListImportListConfigs

func (q *Queries) ListImportListConfigs(ctx context.Context) ([]ImportListConfig, error)

func (*Queries) ListIndexerConfigs

func (q *Queries) ListIndexerConfigs(ctx context.Context) ([]IndexerConfig, error)

func (*Queries) ListLibraries

func (q *Queries) ListLibraries(ctx context.Context) ([]Library, error)

func (*Queries) ListManagedQualityProfiles

func (q *Queries) ListManagedQualityProfiles(ctx context.Context) ([]QualityProfile, error)

func (*Queries) ListMediaServerConfigs

func (q *Queries) ListMediaServerConfigs(ctx context.Context) ([]MediaServerConfig, error)

func (*Queries) ListMissingEpisodes

func (q *Queries) ListMissingEpisodes(ctx context.Context, arg ListMissingEpisodesParams) ([]Episode, error)

func (*Queries) ListMonitoredSeries

func (q *Queries) ListMonitoredSeries(ctx context.Context) ([]Series, error)

func (*Queries) ListNotificationConfigs

func (q *Queries) ListNotificationConfigs(ctx context.Context) ([]NotificationConfig, error)

func (*Queries) ListQualityDefinitions

func (q *Queries) ListQualityDefinitions(ctx context.Context) ([]QualityDefinition, error)

func (*Queries) ListQualityProfiles

func (q *Queries) ListQualityProfiles(ctx context.Context) ([]QualityProfile, error)

func (*Queries) ListSeasonsBySeriesID

func (q *Queries) ListSeasonsBySeriesID(ctx context.Context, seriesID string) ([]Season, error)

func (*Queries) ListSeries

func (q *Queries) ListSeries(ctx context.Context, arg ListSeriesParams) ([]Series, error)

func (*Queries) ListSeriesByLibrary

func (q *Queries) ListSeriesByLibrary(ctx context.Context, arg ListSeriesByLibraryParams) ([]Series, error)

func (*Queries) ListSeriesGenresJSON

func (q *Queries) ListSeriesGenresJSON(ctx context.Context) ([]string, error)

func (*Queries) ListStaleActiveGrabs

func (q *Queries) ListStaleActiveGrabs(ctx context.Context, olderThan string) ([]GrabHistory, error)

Stuck-downloading grabs that the stallwatcher should expire because they can't make progress. Two cohorts:

  1. info_hash IS NULL/empty: pilot recorded the grab but never got an info_hash back from the download client. The stallwatcher's info_hash-keyed pipeline is blind to these - they sit in `downloading` forever. We expire them by age.
  2. info_hash IS set: stallwatcher already has a better signal (haul reports the stall reason). Those are handled by the haul-stall path; not returned here.

Returned rows are old enough that the operator's expectation is "this should have completed by now or be reported as stalled."

func (*Queries) ListStatsSnapshots

func (q *Queries) ListStatsSnapshots(ctx context.Context, limit int64) ([]StatsSnapshot, error)

func (*Queries) ListStorageSnapshots

func (q *Queries) ListStorageSnapshots(ctx context.Context, limit int64) ([]ListStorageSnapshotsRow, error)

func (*Queries) MarkGrabRemoved

func (q *Queries) MarkGrabRemoved(ctx context.Context, id string) error

func (*Queries) PruneActivities

func (q *Queries) PruneActivities(ctx context.Context, createdAt string) error

func (*Queries) QualityProfileInUse

func (q *Queries) QualityProfileInUse(ctx context.Context, arg QualityProfileInUseParams) (int64, error)

func (*Queries) SetSetting

func (q *Queries) SetSetting(ctx context.Context, arg SetSettingParams) error

func (*Queries) SumEpisodeFileSize

func (q *Queries) SumEpisodeFileSize(ctx context.Context) (interface{}, error)

func (*Queries) UpdateDownloadClientConfig

func (q *Queries) UpdateDownloadClientConfig(ctx context.Context, arg UpdateDownloadClientConfigParams) (DownloadClientConfig, error)

func (*Queries) UpdateEpisode

func (q *Queries) UpdateEpisode(ctx context.Context, arg UpdateEpisodeParams) (Episode, error)

func (*Queries) UpdateEpisodeAbsoluteNumber

func (q *Queries) UpdateEpisodeAbsoluteNumber(ctx context.Context, arg UpdateEpisodeAbsoluteNumberParams) error

Backfill or correct the absolute episode number. Used by the refresh path when a series is newly flagged as anime - its existing rows have absolute_number = NULL and need to be filled in retroactively.

func (*Queries) UpdateEpisodeFilePath

func (q *Queries) UpdateEpisodeFilePath(ctx context.Context, arg UpdateEpisodeFilePathParams) error

func (*Queries) UpdateEpisodeHasFile

func (q *Queries) UpdateEpisodeHasFile(ctx context.Context, arg UpdateEpisodeHasFileParams) error

Focused setter for the file-existence reconciler (QW5), which flips has_file=FALSE when the underlying file is gone. Adding it instead of reusing UpdateEpisode avoids a read-modify-write of every metadata field for what is logically a single-bit change.

func (*Queries) UpdateEpisodeMonitored

func (q *Queries) UpdateEpisodeMonitored(ctx context.Context, arg UpdateEpisodeMonitoredParams) error

func (*Queries) UpdateEpisodesMonitoredBySeason

func (q *Queries) UpdateEpisodesMonitoredBySeason(ctx context.Context, arg UpdateEpisodesMonitoredBySeasonParams) error

func (*Queries) UpdateGrabDownloadClient

func (q *Queries) UpdateGrabDownloadClient(ctx context.Context, arg UpdateGrabDownloadClientParams) error

func (*Queries) UpdateGrabInfoHash

func (q *Queries) UpdateGrabInfoHash(ctx context.Context, arg UpdateGrabInfoHashParams) error

func (*Queries) UpdateGrabStatus

func (q *Queries) UpdateGrabStatus(ctx context.Context, arg UpdateGrabStatusParams) error

func (*Queries) UpdateImportListConfig

func (q *Queries) UpdateImportListConfig(ctx context.Context, arg UpdateImportListConfigParams) (ImportListConfig, error)

func (*Queries) UpdateIndexerConfig

func (q *Queries) UpdateIndexerConfig(ctx context.Context, arg UpdateIndexerConfigParams) (IndexerConfig, error)

func (*Queries) UpdateLibrary

func (q *Queries) UpdateLibrary(ctx context.Context, arg UpdateLibraryParams) (Library, error)

func (*Queries) UpdateMediaManagement

func (q *Queries) UpdateMediaManagement(ctx context.Context, arg UpdateMediaManagementParams) (MediaManagement, error)

func (*Queries) UpdateMediaServerConfig

func (q *Queries) UpdateMediaServerConfig(ctx context.Context, arg UpdateMediaServerConfigParams) (MediaServerConfig, error)

func (*Queries) UpdateNotificationConfig

func (q *Queries) UpdateNotificationConfig(ctx context.Context, arg UpdateNotificationConfigParams) (NotificationConfig, error)

func (*Queries) UpdateQualityDefinitionSizes

func (q *Queries) UpdateQualityDefinitionSizes(ctx context.Context, arg UpdateQualityDefinitionSizesParams) error

func (*Queries) UpdateQualityProfile

func (q *Queries) UpdateQualityProfile(ctx context.Context, arg UpdateQualityProfileParams) (QualityProfile, error)

func (*Queries) UpdateSeasonMonitored

func (q *Queries) UpdateSeasonMonitored(ctx context.Context, arg UpdateSeasonMonitoredParams) error

func (*Queries) UpdateSeries

func (q *Queries) UpdateSeries(ctx context.Context, arg UpdateSeriesParams) (Series, error)

func (*Queries) UpdateSeriesMetadata

func (q *Queries) UpdateSeriesMetadata(ctx context.Context, arg UpdateSeriesMetadataParams) (Series, error)

func (*Queries) UpsertAnimeCourMonitored

func (q *Queries) UpsertAnimeCourMonitored(ctx context.Context, arg UpsertAnimeCourMonitoredParams) error

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type Season

type Season struct {
	ID           string `json:"id"`
	SeriesID     string `json:"seriesId"`
	SeasonNumber int64  `json:"seasonNumber"`
	Monitored    bool   `json:"monitored"`
}

type Series

type Series struct {
	ID                  string  `json:"id"`
	TmdbID              int64   `json:"tmdbId"`
	ImdbID              *string `json:"imdbId"`
	Title               string  `json:"title"`
	SortTitle           string  `json:"sortTitle"`
	Year                int64   `json:"year"`
	Overview            string  `json:"overview"`
	RuntimeMinutes      *int64  `json:"runtimeMinutes"`
	GenresJson          string  `json:"genresJson"`
	PosterUrl           *string `json:"posterUrl"`
	FanartUrl           *string `json:"fanartUrl"`
	Status              string  `json:"status"`
	SeriesType          string  `json:"seriesType"`
	MonitorType         string  `json:"monitorType"`
	Network             *string `json:"network"`
	AirTime             *string `json:"airTime"`
	Certification       *string `json:"certification"`
	Monitored           bool    `json:"monitored"`
	LibraryID           string  `json:"libraryId"`
	QualityProfileID    string  `json:"qualityProfileId"`
	Path                *string `json:"path"`
	AddedAt             string  `json:"addedAt"`
	UpdatedAt           string  `json:"updatedAt"`
	MetadataRefreshedAt *string `json:"metadataRefreshedAt"`
	AlternateTitles     string  `json:"alternateTitles"`
}

type SetSettingParams

type SetSettingParams struct {
	Key       string `json:"key"`
	Value     string `json:"value"`
	UpdatedAt string `json:"updatedAt"`
}

type Setting

type Setting struct {
	Key       string `json:"key"`
	Value     string `json:"value"`
	UpdatedAt string `json:"updatedAt"`
}

type StatsSnapshot

type StatsSnapshot struct {
	ID                string `json:"id"`
	TotalSeries       int64  `json:"totalSeries"`
	TotalEpisodes     int64  `json:"totalEpisodes"`
	MonitoredEpisodes int64  `json:"monitoredEpisodes"`
	WithFile          int64  `json:"withFile"`
	Missing           int64  `json:"missing"`
	TotalSizeBytes    int64  `json:"totalSizeBytes"`
	SnapshotAt        string `json:"snapshotAt"`
}

type UpdateDownloadClientConfigParams

type UpdateDownloadClientConfigParams struct {
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Priority  int64  `json:"priority"`
	Settings  string `json:"settings"`
	UpdatedAt string `json:"updatedAt"`
	ID        string `json:"id"`
}

type UpdateEpisodeAbsoluteNumberParams

type UpdateEpisodeAbsoluteNumberParams struct {
	AbsoluteNumber *int64 `json:"absoluteNumber"`
	ID             string `json:"id"`
}

type UpdateEpisodeFilePathParams

type UpdateEpisodeFilePathParams struct {
	Path string `json:"path"`
	ID   string `json:"id"`
}

type UpdateEpisodeHasFileParams

type UpdateEpisodeHasFileParams struct {
	HasFile bool   `json:"hasFile"`
	ID      string `json:"id"`
}

type UpdateEpisodeMonitoredParams

type UpdateEpisodeMonitoredParams struct {
	Monitored bool   `json:"monitored"`
	ID        string `json:"id"`
}

type UpdateEpisodeParams

type UpdateEpisodeParams struct {
	Title          string  `json:"title"`
	Overview       string  `json:"overview"`
	AirDate        *string `json:"airDate"`
	HasFile        bool    `json:"hasFile"`
	StillPath      string  `json:"stillPath"`
	RuntimeMinutes int64   `json:"runtimeMinutes"`
	ID             string  `json:"id"`
}

type UpdateEpisodesMonitoredBySeasonParams

type UpdateEpisodesMonitoredBySeasonParams struct {
	Monitored bool   `json:"monitored"`
	SeasonID  string `json:"seasonId"`
}

type UpdateGrabDownloadClientParams

type UpdateGrabDownloadClientParams struct {
	DownloadClientID *string `json:"downloadClientId"`
	ClientItemID     *string `json:"clientItemId"`
	ID               string  `json:"id"`
}

type UpdateGrabInfoHashParams

type UpdateGrabInfoHashParams struct {
	InfoHash *string `json:"infoHash"`
	ID       string  `json:"id"`
}

type UpdateGrabStatusParams

type UpdateGrabStatusParams struct {
	DownloadStatus  string `json:"downloadStatus"`
	DownloadedBytes int64  `json:"downloadedBytes"`
	ID              string `json:"id"`
}

type UpdateImportListConfigParams

type UpdateImportListConfigParams struct {
	Name             string `json:"name"`
	Kind             string `json:"kind"`
	Enabled          bool   `json:"enabled"`
	Settings         string `json:"settings"`
	SearchOnAdd      bool   `json:"searchOnAdd"`
	Monitor          bool   `json:"monitor"`
	MonitorType      string `json:"monitorType"`
	QualityProfileID string `json:"qualityProfileId"`
	LibraryID        string `json:"libraryId"`
	UpdatedAt        string `json:"updatedAt"`
	ID               string `json:"id"`
}

type UpdateIndexerConfigParams

type UpdateIndexerConfigParams struct {
	Name       string `json:"name"`
	Kind       string `json:"kind"`
	Enabled    bool   `json:"enabled"`
	Priority   int64  `json:"priority"`
	Settings   string `json:"settings"`
	MinSeeders int64  `json:"minSeeders"`
	UpdatedAt  string `json:"updatedAt"`
	ID         string `json:"id"`
}

type UpdateLibraryParams

type UpdateLibraryParams struct {
	Name                    string  `json:"name"`
	RootPath                string  `json:"rootPath"`
	DefaultQualityProfileID string  `json:"defaultQualityProfileId"`
	NamingFormat            *string `json:"namingFormat"`
	FolderFormat            *string `json:"folderFormat"`
	MinFreeSpaceGb          int64   `json:"minFreeSpaceGb"`
	TagsJson                string  `json:"tagsJson"`
	UpdatedAt               string  `json:"updatedAt"`
	ID                      string  `json:"id"`
}

type UpdateMediaManagementParams

type UpdateMediaManagementParams struct {
	RenameEpisodes           bool   `json:"renameEpisodes"`
	StandardEpisodeFormat    string `json:"standardEpisodeFormat"`
	DailyEpisodeFormat       string `json:"dailyEpisodeFormat"`
	AnimeEpisodeFormat       string `json:"animeEpisodeFormat"`
	SeriesFolderFormat       string `json:"seriesFolderFormat"`
	SeasonFolderFormat       string `json:"seasonFolderFormat"`
	ColonReplacement         string `json:"colonReplacement"`
	ImportExtraFiles         bool   `json:"importExtraFiles"`
	ExtraFileExtensions      string `json:"extraFileExtensions"`
	UnmonitorDeletedEpisodes bool   `json:"unmonitorDeletedEpisodes"`
}

type UpdateMediaServerConfigParams

type UpdateMediaServerConfigParams struct {
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	UpdatedAt string `json:"updatedAt"`
	ID        string `json:"id"`
}

type UpdateNotificationConfigParams

type UpdateNotificationConfigParams struct {
	Name      string `json:"name"`
	Kind      string `json:"kind"`
	Enabled   bool   `json:"enabled"`
	Settings  string `json:"settings"`
	OnEvents  string `json:"onEvents"`
	UpdatedAt string `json:"updatedAt"`
	ID        string `json:"id"`
}

type UpdateQualityDefinitionSizesParams

type UpdateQualityDefinitionSizesParams struct {
	MinSize       float64 `json:"minSize"`
	MaxSize       float64 `json:"maxSize"`
	PreferredSize float64 `json:"preferredSize"`
	ID            string  `json:"id"`
}

type UpdateQualityProfileParams

type UpdateQualityProfileParams struct {
	Name                 string  `json:"name"`
	CutoffJson           string  `json:"cutoffJson"`
	QualitiesJson        string  `json:"qualitiesJson"`
	UpgradeAllowed       bool    `json:"upgradeAllowed"`
	UpgradeUntilJson     *string `json:"upgradeUntilJson"`
	UpdatedAt            string  `json:"updatedAt"`
	MinCustomFormatScore int64   `json:"minCustomFormatScore"`
	UpgradeUntilCfScore  int64   `json:"upgradeUntilCfScore"`
	ID                   string  `json:"id"`
}

type UpdateSeasonMonitoredParams

type UpdateSeasonMonitoredParams struct {
	Monitored bool   `json:"monitored"`
	ID        string `json:"id"`
}

type UpdateSeriesMetadataParams

type UpdateSeriesMetadataParams struct {
	ImdbID              *string `json:"imdbId"`
	Title               string  `json:"title"`
	SortTitle           string  `json:"sortTitle"`
	Year                int64   `json:"year"`
	Overview            string  `json:"overview"`
	RuntimeMinutes      *int64  `json:"runtimeMinutes"`
	GenresJson          string  `json:"genresJson"`
	PosterUrl           *string `json:"posterUrl"`
	FanartUrl           *string `json:"fanartUrl"`
	Status              string  `json:"status"`
	Network             *string `json:"network"`
	AirTime             *string `json:"airTime"`
	Certification       *string `json:"certification"`
	MetadataRefreshedAt *string `json:"metadataRefreshedAt"`
	UpdatedAt           string  `json:"updatedAt"`
	AlternateTitles     string  `json:"alternateTitles"`
	ID                  string  `json:"id"`
}

type UpdateSeriesParams

type UpdateSeriesParams struct {
	Title            string  `json:"title"`
	Monitored        bool    `json:"monitored"`
	LibraryID        string  `json:"libraryId"`
	QualityProfileID string  `json:"qualityProfileId"`
	SeriesType       string  `json:"seriesType"`
	Path             *string `json:"path"`
	UpdatedAt        string  `json:"updatedAt"`
	ID               string  `json:"id"`
}

type UpsertAnimeCourMonitoredParams

type UpsertAnimeCourMonitoredParams struct {
	SeriesID   string `json:"seriesId"`
	TvdbSeason int64  `json:"tvdbSeason"`
	Monitored  bool   `json:"monitored"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL