yiekheng 7039d57a41 feat(db,shared): delivery window columns + windowEndAt helper
Adds two integer columns to the reminders table:
* delivery_window_start_hour (default 6)
* delivery_window_end_hour   (default 18)

Both are documented in the operator's timezone. End hour will gate
the runtime fire-reminder loop in a later phase; this commit just
lands the data model and the pure window-end calculator.

windowEndAt(timezone, endHour, fireAt) lives in @cmbot/shared so
both bot (window enforcement) and web (ETA preview) can import it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:48:36 +08:00

69 lines
1.3 KiB
JSON

{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1778311164225,
"tag": "0000_conscious_tarantula",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1778320434707,
"tag": "0001_smart_vertigo",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1778338808600,
"tag": "0002_left_jimmy_woo",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1778343712901,
"tag": "0003_messy_bruce_banner",
"breakpoints": true
},
{
"idx": 4,
"version": "7",
"when": 1778345543406,
"tag": "0004_next_prowler",
"breakpoints": true
},
{
"idx": 5,
"version": "7",
"when": 1778347437350,
"tag": "0005_flippant_joystick",
"breakpoints": true
},
{
"idx": 6,
"version": "7",
"when": 1778385559051,
"tag": "0006_adorable_nehzno",
"breakpoints": true
},
{
"idx": 7,
"version": "7",
"when": 1778386591494,
"tag": "0007_overconfident_menace",
"breakpoints": true
},
{
"idx": 8,
"version": "7",
"when": 1778395584234,
"tag": "0008_greedy_matthew_murdock",
"breakpoints": true
}
]
}