From 9839bde4f650eb5d94e57d870b605ebb8c22624f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Thu, 15 Oct 2026 18:46:19 +0200 Subject: [PATCH 1/2] chore(demo): let the dental check-up fall due on the seed day --- scripts/seed-demo.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/seed-demo.ts b/scripts/seed-demo.ts index c37cf6089..569230424 100644 --- a/scripts/seed-demo.ts +++ b/scripts/seed-demo.ts @@ -31,7 +31,8 @@ * - 90 days of mood entries * - Six mental-wellbeing screeners (WHO-5, PHQ-9, GAD-7) spread over the * window, item answers encrypted the way the check-in route writes them - * - Vorsorge (preventive-care) reminders — upcoming dental + annual physical + * - Vorsorge (preventive-care) reminders — a dental check-up due today and + * an annual physical in three months * - Two lab panels of biomarkers across two dates (quantitative with * reference ranges + qualitative "negativ" rows) * - Two illness episodes — a resolved acute cold with a day-by-day symptom @@ -1511,14 +1512,15 @@ async function seed() { // ── Vorsorge reminders (preventive care) ── // User-created (origin VORSORGE) checklist reminders with no auto-resolve - // measurement target. Both anchored to fire comfortably in the future so - // the Vorsorge surface shows sensible upcoming items, not overdue ones. + // measurement target. The dental check-up falls due this morning, so the + // dashboard's "worth a look" carries it beside tomorrow's appointment; the + // annual physical sits comfortably in the future. console.log("Creating Vorsorge reminders..."); - const dentalNextDue = daysAgo(-45); // ~6 weeks out + const dentalNextDue = berlinHmAsUtc(9, 0); // due today, 09:00 local await client.query( `INSERT INTO measurement_reminders (id, user_id, label, interval_days, anchor_date, origin, notify_hour, location, next_due_at, created_at, updated_at) VALUES ($1, $2, 'Dental check-up', 365, $3, 'VORSORGE', 9, 'Dentist', $4, NOW(), NOW())`, - [cuid(), userId, daysAgo(320), dentalNextDue], + [cuid(), userId, daysAgo(365), dentalNextDue], ); const physicalNextDue = daysAgo(-90); // ~3 months out await client.query( From 89ccb71a12408887dff8dbcbb43ddfddc4346d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Thu, 15 Oct 2026 18:49:51 +0200 Subject: [PATCH 2/2] chore(demo): show one row of six tiles with the weight chart below it --- scripts/seed-demo.ts | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/scripts/seed-demo.ts b/scripts/seed-demo.ts index 569230424..ae3061820 100644 --- a/scripts/seed-demo.ts +++ b/scripts/seed-demo.ts @@ -493,24 +493,25 @@ async function seed() { ); // ── Dashboard showcase layout ───────────── - // The demo seeds rich sleep / steps / glucose / VO2max / vorsorge data, - // so persist an explicit dashboard layout that surfaces those tiles plus - // the daily-verdict hero. The v1.20.0 defaults already turn the data - // tiles on, but writing the layout verbatim keeps the public demo's home - // page stable regardless of future default tweaks. Derived from - // DEFAULT_DASHBOARD_LAYOUT with the seeded-rich strip tiles forced on. + // One row of six tiles (weight, the two blood-pressure values, resting + // heart rate, HRV and mood) and the weight chart right below it, so the + // first screen of the public demo shows the summary, the tiles and the + // start of a chart together. Every other tile stays one switch away in + // the layout settings; its data is seeded either way. Writing the layout + // verbatim keeps the demo's home page stable across default tweaks. const SHOWCASE_TILE_IDS = new Set([ - "sleep", - "steps", - "glucose", - "vo2Max", - "recentWorkouts", + "weight", + "bp", + "pulse", + "hrv", + "mood", ]); const demoDashboardLayout = serializeDashboardLayout({ ...DEFAULT_DASHBOARD_LAYOUT, - widgets: DEFAULT_DASHBOARD_LAYOUT.widgets.map((w) => - SHOWCASE_TILE_IDS.has(w.id) ? { ...w, tileVisible: true } : w, - ), + widgets: DEFAULT_DASHBOARD_LAYOUT.widgets.map((w) => ({ + ...w, + tileVisible: SHOWCASE_TILE_IDS.has(w.id), + })), }); await client.query( `UPDATE users SET dashboard_widgets_json = $1 WHERE id = $2`,