-- Single-profile settings: Garmin credentials (replacing env-var-only -- config) and every tunable engine parameter, in one editable row. CREATE TABLE profile ( id INTEGER PRIMARY KEY CHECK (id = 1), garmin_email TEXT NOT NULL DEFAULT '', garmin_password TEXT NOT NULL DEFAULT '', rolling_window_days INTEGER NOT NULL DEFAULT 90, max_heart_rate REAL, resting_heart_rate REAL, hr_zone1_min_pct REAL NOT NULL DEFAULT 50, hr_zone1_max_pct REAL NOT NULL DEFAULT 60, hr_zone2_min_pct REAL NOT NULL DEFAULT 60, hr_zone2_max_pct REAL NOT NULL DEFAULT 70, hr_zone3_min_pct REAL NOT NULL DEFAULT 70, hr_zone3_max_pct REAL NOT NULL DEFAULT 80, hr_zone4_min_pct REAL NOT NULL DEFAULT 80, hr_zone4_max_pct REAL NOT NULL DEFAULT 90, hr_zone5_min_pct REAL NOT NULL DEFAULT 90, hr_zone5_max_pct REAL NOT NULL DEFAULT 100, easy_warmup_minutes REAL NOT NULL DEFAULT 10, easy_cooldown_minutes REAL NOT NULL DEFAULT 5, long_warmup_minutes REAL NOT NULL DEFAULT 10, long_cooldown_minutes REAL NOT NULL DEFAULT 5, tempo_warmup_minutes REAL NOT NULL DEFAULT 15, tempo_cooldown_minutes REAL NOT NULL DEFAULT 10, threshold30_warmup_minutes REAL NOT NULL DEFAULT 15, threshold30_cooldown_minutes REAL NOT NULL DEFAULT 10, threshold60_warmup_minutes REAL NOT NULL DEFAULT 15, threshold60_cooldown_minutes REAL NOT NULL DEFAULT 10, mas_test_warmup_minutes REAL NOT NULL DEFAULT 15, mas_test_cooldown_minutes REAL NOT NULL DEFAULT 5, interval_warmup_minutes REAL NOT NULL DEFAULT 0, interval_cooldown_minutes REAL NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); INSERT INTO profile (id) VALUES (1);