diff options
Diffstat (limited to 'app/lib')
| -rw-r--r-- | app/lib/db.server.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/lib/db.server.ts b/app/lib/db.server.ts index 37d819b..e554d75 100644 --- a/app/lib/db.server.ts +++ b/app/lib/db.server.ts @@ -481,6 +481,25 @@ function buildSnapshot(band: Band, links: BandLink[], members: BandMemberRow[]): }); } +// ── Search ──────────────────────────────────────────────────────────────────── + +export interface SearchResults { + bands: Band[]; + artists: Artist[]; +} + +export function searchAll(query: string): SearchResults { + const db = getDb(); + const q = `%${query}%`; + const bands = db + .prepare("SELECT * FROM bands WHERE name LIKE ? OR area LIKE ? OR description LIKE ? ORDER BY name LIMIT 50") + .all(q, q, q) as Band[]; + const artists = db + .prepare("SELECT * FROM artists WHERE name LIKE ? ORDER BY name LIMIT 50") + .all(q) as Artist[]; + return { bands, artists }; +} + // ── Artist queries ──────────────────────────────────────────────────────────── export function listArtists(): Artist[] { |
