// A staff-time report row opened here: whose schedule, and a view wide enough for the period. const DAY = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; export interface ScheduleDrill { roleId?: string; from: string; range: 'day' | 'week' | 'month' | 'year' } export const scheduleDrillFrom = (params: URLSearchParams): ScheduleDrill | null => { const from = params.get('start'); const to = params.get('end'); if (!from || !to || !DAY.test(from) || !DAY.test(to) || from > to) return null; const days = (Date.parse(to) - Date.parse(from)) / 86_400_000 + 1; const range = days <= 1 ? 'day' : days <= 7 ? 'week' : days <= 31 ? 'month' : 'year'; const roleId = params.get('role'); return { ...(roleId ? { roleId } : {}), from, range }; };