mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
Merge branch 'chore/demo-seed-v1424' into release/v1.43.0
This commit is contained in:
commit
b4dc0d5927
1 file changed
+22
-19
+22
-19
@@ -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
|
||||
@@ -492,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`,
|
||||
@@ -1511,14 +1513,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(
|
||||
|
||||
Reference in new issue
Block a user