blob: 899583b3230ccba03913eab3fa5e5a5df894b3f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package actions
import (
"errors"
"time"
)
// Common errors
var (
ErrNoActiveTimer = errors.New("no active timer found")
ErrClientRequired = errors.New("client is required")
ErrClientNotFound = errors.New("client not found")
ErrProjectNotFound = errors.New("project not found")
ErrAmbiguousClient = errors.New("ambiguous client reference")
ErrAmbiguousProject = errors.New("ambiguous project reference")
ErrProjectClientMismatch = errors.New("project does not belong to specified client")
ErrNoRecentEntries = errors.New("no previous time entries found")
)
// TimerSession represents an active or completed time tracking session
type TimerSession struct {
ID int64
ClientName string
ProjectName string // empty if no project
Description string // empty if no description
StartTime time.Time
EndTime *time.Time // nil if still active
Duration time.Duration
WasNoOp bool // true if timer was already active with same parameters
StoppedEntryID *int64 // ID of previously stopped entry (if any)
}
|