feat: enhance recurrence with RRULE & month-end patterns - #548
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe change adds two month-end recurrence patterns and stores budget and schedule recurrence data in one RFC 5545 ChangesRRULE storage and backend recurrence flow
Month-end recurrence patterns
Tests and documentation
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature Merge Risk: 🟡 Moderate · up to Valid schedules may be treated as exhausted, malformed requests can fail unexpectedly, and deployment tooling has unsafe rollback and shipping behavior. These issues should be corrected before merge. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Out of Scope Changes checkExplanation Most changes support issue Full details: Docstring CoverageExplanation Docstring coverage is 36.07% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 122 functions across 27 files. (15 skipped: 15 unsupported.) ✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Adds two new month-scoped recurrence patterns ("N days before month end" and "last business day of month") and fundamentally redesigns how all recurrence rules are stored and processed.
This change introduces significant benefits:
transaction_schedulesandbudgets. This allows for easier future expansion of recurrence capabilities without requiring database schema changes.HasRecurrenceRuletrait transparently composes and decomposes therrulestring, ensuring no breaking changes for clients.RecurrenceRuleServiceis refactored to operate directly on therrulestring, simplifying its method signatures and improving maintainability.transaction_schedulesdata is automatically migrated to the newrruleformat through a guarded, three-step migration sequence, preserving all historical recurrence settings. Newbudgetsare created directly with therrulecolumn.This redesign improves flexibility, simplifies future development of recurrence features, and maintains data integrity during the upgrade process.
Closes #546
Summary by CodeRabbit
New Features
Bug Fixes
Documentation