holiday model has _companyId only). Scheduling treats holiday dates as closed for all inspectors:calendarAvailabilityIndex.isSlotAvailable returns false on any holiday date.buildSlotsByDateForRange marks projected slots available: false on holidays.schedule.ts skips holiday dates entirely when building candidate days.slotOrigin: 'manual' in historicSlots) still pass through the same holiday gate and are blocked. Code review confirmed temporary slots do not currently override holiday closure.Locked
slotOrigin: 'manual' historic slots created via inspector temporary-slot UI). Standard weekly template slots remain blocked on holidays.Open (Remaining product clarifying decisions)
offeredOnline (online scheduler only when true), or should internal scheduler always see them regardless?temporarySeriesId / temporarySeriesRecurrence), should every occurrence on a holiday override closure, or only explicitly one-off temps?Backend — holiday gate (primary change)
attik-backend/src/util/functions/slots/calendarAvailabilityIndex.ts — isSlotAvailable currently returns false for all slots on holidayDates; needs an exception path for manual/temporary historic slots.attik-backend/src/util/functions/slots/buildSlotsByDateForRange.ts — historic and projected day logic sets available: false when dayIsHoliday; temporary manual slots loaded here must be able to remain available.attik-backend/src/util/functions/slots/weeklySlotProjection.ts — projectFutureDayBucket returns empty holiday buckets; standard weekly projection should stay closed; manual historic slots handled separately.attik-backend/src/util/functions/slots/calcAvailableSlots.ts — maps slots through calendar.isSlotAvailable; must reflect override behavior.attik-backend/src/routes/schedule.ts — findAvailableSlots skips holiday dates when building dates; must include holiday dates when qualifying temporary manual slots exist (or alternate discovery path).attik-backend/src/util/functions/slots/historicSlotsForScheduling.ts — loads manual historic slots for schedule dates; offeredOnline filtering for client-facing scheduler.Backend — data model
attik-backend/src/models/holidaySchema.ts — company-wide holiday records (likely unchanged).attik-backend/src/models/slotsSchema.ts — HistoricSlots with slotOrigin: 'manual', temporarySeriesId, temporarySeriesRecurrence, offeredOnline.attik-backend/src/routes/slot.ts — creates/updates manual and temporary slot series.Frontend
attik-frontend/src/app/tools/settings/inspectors/[id]/TemporaryInspectorSlots.tsx — UI for one-off/recurring temporary openings.attik-frontend/src/app/tools/settings/inspectors/[id]/EditTemporarySlotModal.tsx — create/edit including offeredOnline on recurring edits.attik-frontend/src/app/tools/settings/holidays/page.tsx — company holiday management (calendar-admin permission); unchanged authoring, but behavior downstream changes.Out of scope (unless product expands)
payrollContext.ts, getMonthlyForecastRange.ts) unless booking availability changes require it.attik-backend/src/util/functions/slots/calendarAvailabilityIndex.tsattik-backend/src/routes/schedule.tsattik-backend/src/models/slotsSchema.tsattik-frontend/src/app/tools/settings/inspectors/[id]/TemporaryInspectorSlots.tsxPlease authenticate to join the conversation.
Planned
Main App
About 22 hours ago
Linear
Get notified by email when there are changes.
Planned
Main App
About 22 hours ago
Linear
Get notified by email when there are changes.