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 1 month ago
Linear
Get notified by email when there are changes.
Planned
Main App
About 1 month ago
Linear
Get notified by email when there are changes.