hunk.code_window: 	}
   }
   func (s *LocalCacheSupplier) ReactionSave(ctx context.Context, reaction *model.Reaction, hints ...LayeredStoreHint) *LayeredStoreSupplierResult {
   	s.doInvalidateCacheCluster(s.reactionCache, reaction.PostId)
   	return s.Next().ReactionSave(ctx, reaction, hints...)
   }
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit: 	defer s.doInvalidateCacheCluster(s.reactionCache, reaction.PostId)
  
hunk.file_path: store/local_cache_supplier_reactions.go
hunk.type: replace
file: // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
  // See License.txt for license information.
  
  package utils
  
  import (
  	"time"
  )
  
  func MillisFromTime(t time.Time) int64 {
  	return t.UnixNano() / int64(time.Millisecond)
  }
  
  func TimeFromMillis(millis int64) time.Time {
  	return time.Unix(0, millis*int64(time.Millisecond))
  }
  
  func StartOfDay(t time.Time) time.Time {
  	year, month, day := t.Date()
  	return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
  }
  
  func EndOfDay(t time.Time) time.Time {
  	year, month, day := t.Date()
  	return time.Date(year, month, day, 23, 59, 59, 999999999, t.Location())
  }
  
  func Yesterday() time.Time {
  	return time.Now().AddDate(0, 0, -1)
  }
  