M9.1: wire sync logging into all mutation paths
- Add LogClosedDayDelete and LogClosedWeekDelete to SyncStore - Inject syncStore into EntryService; log Start, Stop, StopByID, Update, CreateInterval, Delete, AutoStopStalledEntries - Inject syncStore into DayService; log CloseDay, MarkDay, ReopenDay, and the recomputeWeek closed-week upsert - Inject syncStore into SettingsService; log Upsert, UpdateSettings, DeleteSettings - Add LogClosedWeek/LogClosedWeekDelete calls in WeekService.CloseWeek and ReopenWeek - Update main.go and all service test helpers for new constructor signatures - All Go tests and 19 Vitest tests pass
This commit is contained in:
@@ -22,6 +22,7 @@ type DayService struct {
|
||||
closedDays *store.ClosedDayStore
|
||||
closedWeeks *store.ClosedWeekStore
|
||||
settings *store.SettingsStore
|
||||
syncStore *store.SyncStore
|
||||
tz *time.Location
|
||||
}
|
||||
|
||||
@@ -30,6 +31,7 @@ func NewDayService(
|
||||
closedDays *store.ClosedDayStore,
|
||||
closedWeeks *store.ClosedWeekStore,
|
||||
settings *store.SettingsStore,
|
||||
syncStore *store.SyncStore,
|
||||
tz *time.Location,
|
||||
) *DayService {
|
||||
return &DayService{
|
||||
@@ -37,6 +39,7 @@ func NewDayService(
|
||||
closedDays: closedDays,
|
||||
closedWeeks: closedWeeks,
|
||||
settings: settings,
|
||||
syncStore: syncStore,
|
||||
tz: tz,
|
||||
}
|
||||
}
|
||||
@@ -74,7 +77,11 @@ func (s *DayService) recomputeWeek(ctx context.Context, dayKey string) error {
|
||||
cw.WorkedMs = totalWorkedMs
|
||||
cw.DeltaMs = totalWorkedMs - cw.ExpectedMs
|
||||
cw.UpdatedAt = time.Now().UnixMilli()
|
||||
return s.closedWeeks.Upsert(ctx, cw)
|
||||
if err := s.closedWeeks.Upsert(ctx, cw); err != nil {
|
||||
return err
|
||||
}
|
||||
_ = s.syncStore.LogClosedWeek(ctx, cw)
|
||||
return nil
|
||||
}
|
||||
|
||||
// CloseDay merges all completed entries for the given day key into a ClosedDay.
|
||||
@@ -136,6 +143,7 @@ func (s *DayService) CloseDay(ctx context.Context, dayKey string) (*domain.Close
|
||||
if err := s.closedDays.Upsert(ctx, cd); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = s.syncStore.LogClosedDay(ctx, cd)
|
||||
if err := s.recomputeWeek(ctx, dayKey); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -175,6 +183,7 @@ func (s *DayService) MarkDay(ctx context.Context, dayKey string, kind domain.Day
|
||||
if err := s.closedDays.Upsert(ctx, cd); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_ = s.syncStore.LogClosedDay(ctx, cd)
|
||||
if err := s.recomputeWeek(ctx, dayKey); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -196,6 +205,7 @@ func (s *DayService) ReopenDay(ctx context.Context, dayKey string) error {
|
||||
if err := s.closedDays.Delete(ctx, dayKey); err != nil {
|
||||
return err
|
||||
}
|
||||
_ = s.syncStore.LogClosedDayDelete(ctx, dayKey)
|
||||
return s.recomputeWeek(ctx, dayKey)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user