Add loop-scoped holiday list support

This commit is contained in:
Jacob Dubin
2026-05-19 06:57:09 -05:00
parent 54b32bc9cf
commit 2bc6fec1bf
13 changed files with 469 additions and 31 deletions

View File

@@ -0,0 +1,22 @@
# Holiday Architecture
Pegasus exposed holidays as a loop-scoped list synchronized into `/jibo/holidays`.
In OpenJibo, the holiday path now follows the same broad model:
- system holidays come from a live holiday source
- custom holidays are loop-scoped
- suppressed holidays are represented as disabled records
- the cloud protocol returns the merged list for `PersonListHolidays`
Current behavior:
- `Person/ListHolidays` uses the loop from the request when available
- if no loop is supplied, the cloud falls back safely instead of throwing
- the merged list is built from system holidays plus any custom loop entries
Notes:
- `IsEnabled = false` can be used to suppress a holiday later
- birthdays and other personal events can be added as loop-scoped custom records
- the current system holiday source uses Nager.Date with a safe local fallback for uptime