feat: add default_has_deadline to ChoreSchedule and update related components for deadline management
Some checks failed
Chore App Build, Test, and Push Docker Images / build-and-push (push) Has been cancelled

This commit is contained in:
2026-02-27 10:42:43 -05:00
parent f5a752d873
commit 1777700cc8
8 changed files with 150 additions and 59 deletions

View File

@@ -23,6 +23,7 @@ export interface ChoreSchedule {
day_configs: DayConfig[]
default_hour?: number // master deadline hour; present when mode='days'
default_minute?: number // master deadline minute; present when mode='days'
default_has_deadline?: boolean // false = 'Anytime', no expiry for 'days' mode
// mode='interval'
interval_days: number // 17
anchor_date: string // ISO date string e.g. "2026-02-25"; "" means use today

View File

@@ -66,6 +66,8 @@ export function getDueTimeToday(
localDate: Date,
): { hour: number; minute: number } | null {
if (schedule.mode === 'days') {
// default_has_deadline === false means 'Anytime' — no expiry for scheduled days
if (schedule.default_has_deadline === false) return null
const todayWeekday = getLocalWeekday(localDate)
const dayConfig = schedule.day_configs.find((dc: DayConfig) => dc.day === todayWeekday)
if (!dayConfig) return null