goon/app/models/__init__.py
jtrzupek bcee5851e9 feat(api): per-device saved searches (keyword favorites)
User-report (mobilism): scenes are often poorly titled, so saved keyword queries are a useful extra retrieval strategy. New saved_searches table (device-scoped via X-Device-Id, unique per device+query, 50/device cap) + GET/POST/DELETE /saved-searches. Migration 0024. Verified CRUD on prod: add trims+dedups idempotently, empty rejected 422, delete idempotent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 13:52:18 +02:00

70 lines
1.9 KiB
Python

from app.models.base import Base
from app.models.blacklist import BlacklistedPerformer, BlacklistedStudio, BlacklistedTag
from app.models.bug_report import BugReport
from app.models.external_record import ExternalRecord
from app.models.favorite_movie import FavoriteMovie
from app.models.favorite_performer import FavoritePerformer
from app.models.favorite_scene import FavoriteScene
from app.models.favorite_studio import FavoriteStudio
from app.models.ingest_run import IngestRun
from app.models.merge_candidate import MergeCandidate
from app.models.movie import (
Movie,
MovieChapter,
MovieExternalRef,
MoviePerformer,
MovieTag,
)
from app.models.movie_playback_source import MoviePlaybackSource
from app.models.performer import Performer, PerformerAlias, PerformerExternalRef
from app.models.play_progress import MoviePlayProgress, ScenePlayProgress
from app.models.playback_source import PlaybackSource
from app.models.saved_search import SavedSearch
from app.models.scene import (
Scene,
SceneExternalRef,
SceneFingerprint,
ScenePerformer,
SceneTag,
)
from app.models.source import Source
from app.models.studio import Studio, StudioAlias, StudioExternalRef
from app.models.tag import Tag
__all__ = [
"Base",
"BlacklistedPerformer",
"BlacklistedStudio",
"BlacklistedTag",
"BugReport",
"ExternalRecord",
"FavoriteMovie",
"FavoritePerformer",
"FavoriteScene",
"FavoriteStudio",
"IngestRun",
"MergeCandidate",
"Movie",
"MovieChapter",
"MovieExternalRef",
"MoviePerformer",
"MoviePlaybackSource",
"MovieTag",
"Performer",
"PerformerAlias",
"PerformerExternalRef",
"MoviePlayProgress",
"ScenePlayProgress",
"PlaybackSource",
"SavedSearch",
"Scene",
"SceneExternalRef",
"SceneFingerprint",
"ScenePerformer",
"SceneTag",
"Source",
"Studio",
"StudioAlias",
"StudioExternalRef",
"Tag",
]