Skip to content

feat: calendar exclusion windows (data model)#12

Merged
Theauxm merged 1 commit into
mainfrom
feat/exclusion-windows
Mar 3, 2026
Merged

feat: calendar exclusion windows (data model)#12
Theauxm merged 1 commit into
mainfrom
feat/exclusion-windows

Conversation

@Theauxm
Copy link
Copy Markdown
Member

@Theauxm Theauxm commented Mar 3, 2026

Summary

  • Add Exclusion data model class with flat discriminated ExclusionType enum (DaysOfWeek, Dates, DateRange, TimeWindow)
  • Add Exclude static factory class with DaysOfWeek(), Dates(), DateRange(), TimeWindow() builders
  • Add exclusions JSONB column on Manifest with GetExclusions()/SetExclusions() helpers
  • Update CreateManifest DTO, Manifest.Create(), and PersistentManifest EF mapping
  • Migration 024: ALTER TABLE trax.manifest ADD COLUMN IF NOT EXISTS exclusions jsonb

Part of feature #6 (Calendar / Exclusion Support). Merge order: this PR first (Trax.Effect), then Trax.Scheduler, then Trax.Dashboard/Trax.Samples/Trax.Docs.

Test plan

  • dotnet build passes
  • Existing tests pass (dotnet test)
  • Migration applies cleanly to PostgreSQL
  • JSON round-trip: SetExclusions()GetExclusions() preserves all exclusion types

…dows

Add per-manifest exclusion windows that skip execution during specific
periods (weekends, holidays, date ranges, maintenance time windows).

- Exclusion class with flat discriminated model (ExclusionType enum)
- Exclude static factory class: DaysOfWeek, Dates, DateRange, TimeWindow
- Exclusions JSONB column on Manifest with Get/SetExclusions helpers
- CreateManifest DTO and PersistentManifest EF mapping updated
- Migration 024_exclusions.sql adds the nullable JSONB column
@traxsharp
Copy link
Copy Markdown

traxsharp Bot commented Mar 3, 2026

This PR is included in version 1.4.0

@Theauxm Theauxm deleted the feat/exclusion-windows branch March 6, 2026 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant