Skip to content

GET /resorts blackout date and LTT filters (Issue #58)#87

Merged
jonathanstelman merged 1 commit intomainfrom
feature/58-blackout-date-filters
Mar 21, 2026
Merged

GET /resorts blackout date and LTT filters (Issue #58)#87
jonathanstelman merged 1 commit intomainfrom
feature/58-blackout-date-filters

Conversation

@jonathanstelman
Copy link
Copy Markdown
Owner

Summary

  • Adds blackout_dates and ltt_dates query params — comma-separated YYYY-MM-DD lists that exclude resorts blacked out on any of the given dates
  • Adds ltt_available boolean filter for LTT program participation
  • Adds ltt_available to ResortSummary response shape
  • Refactors internal store from list[ResortSummary]list[Resort] so filters can access full-model columns (blackout_all_dates, ltt_blackout_all_dates) without leaking those large fields into the API response; projection to ResortSummary now happens at return time

Filter behavior

Param Logic
blackout_dates=2025-12-25,2025-12-26 Excludes resorts where any date appears in blackout_all_dates
ltt_dates=2025-12-25 Same logic against ltt_blackout_all_dates
ltt_available=true Only resorts participating in the LTT program

Resorts with an empty blackout list always pass the date filters.

Test plan

  • blackout_dates excludes resorts blacked out on any given date
  • Multiple dates work (comma-separated)
  • Date with no overlap returns all resorts
  • Whitespace around dates is trimmed
  • Resorts with empty blackout list always pass
  • ltt_dates applies same logic against LTT-specific blackouts
  • ltt_available=true/false filters correctly
  • ltt_available present in response shape
  • All three new params compose with each other and prior filters
  • All 52 backend tests pass; pipeline tests unaffected; Black clean

Closes #58

🤖 Generated with Claude Code

- blackout_dates: comma-separated YYYY-MM-DD list; excludes resorts blacked
  out on any of the given dates
- ltt_dates: same logic against ltt_blackout_all_dates column
- ltt_available: boolean filter on LTT program participation
- ltt_available added to ResortSummary response projection
- Internal store switched to list[Resort] so filters can access full-model
  fields (blackout columns) without bloating ResortSummary; projection to
  ResortSummary happens at return time
- Updated existing test fixtures to use Resort instead of ResortSummary
- 14 new tests covering all params and composability

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jonathanstelman jonathanstelman merged commit d5a1d4a into main Mar 21, 2026
6 checks passed
@jonathanstelman jonathanstelman deleted the feature/58-blackout-date-filters branch March 21, 2026 22:30
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.

GET /resorts endpoint — blackout date filters

1 participant