summaryrefslogtreecommitdiff
path: root/app/lib
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/db.server.ts19
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[] {