T2.1: Add domain.Schedule value object
Introduce src/domain/schedule.go with a Schedule value object that centralizes schedule parsing and validation: Parse, Validate, and Next(time.Time). It owns the cron parser and @every handling, moved out of the scheduler. The scheduler's nextRunTime is kept as a thin wrapper delegating to domain.Parse for now (T2.2 will parse once on load/edit). Add unit tests covering invalid specs, @every intervals, five-field cron, cron descriptors, whitespace trimming, the zero-value Next, and String. Mark T2.1 complete in REFACTORING.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -254,7 +254,7 @@ Track progress here. Mark tasks complete as they land and pass review.
|
||||
- [x] T1.8 — Delete empty `src/core`; build + test both platforms
|
||||
|
||||
### Phase 2 — Domain cleanup
|
||||
- [ ] T2.1 — Add `src/domain/schedule.go`; Schedule value object
|
||||
- [x] T2.1 — Add `src/domain/schedule.go`; Schedule value object
|
||||
- [ ] T2.2 — Migrate `scheduler` to use Schedule
|
||||
- [ ] T2.3 — Split `domain.Job` (durable) from `domain.JobRuntime` (transient)
|
||||
- [ ] T2.4 — Update `storage`: load/save Job only; move runtime init
|
||||
|
||||
Reference in New Issue
Block a user