summaryrefslogtreecommitdiff
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/time.go38
-rw-r--r--model/timer.go11
-rw-r--r--model/uuid.go55
3 files changed, 57 insertions, 47 deletions
diff --git a/model/time.go b/model/time.go
index baf3ce6..e0c399c 100644
--- a/model/time.go
+++ b/model/time.go
@@ -1,34 +1,42 @@
package model
import (
- "time"
- "errors"
- sqldriver "database/sql/driver"
+ sqldriver "database/sql/driver"
+ "errors"
+ "time"
)
type Time time.Time
func MakeTimeNow() Time {
- return Time(time.Now().UTC())
+ return Time(time.Now().UTC())
}
func (self Time) AsUTCString() string {
- return time.Time(self).Format(time.RFC3339)
+ return time.Time(self).Format(time.RFC3339)
}
func (self Time) Value() (sqldriver.Value, error) {
- return self.AsUTCString(), nil
+ return self.AsUTCString(), nil
}
func (self *Time) Scan(value any) error {
- if valueStr, ok := value.(string); ok {
- parsedTime, err := time.Parse(time.RFC3339, valueStr)
- if err == nil {
- *self = Time(parsedTime.UTC())
- }
- return err
- } else {
- return errors.New("Expected a string")
- }
+ if valueStr, ok := value.(string); ok {
+ parsedTime, err := time.Parse(time.RFC3339, valueStr)
+ if err == nil {
+ *self = Time(parsedTime.UTC())
+ }
+ return err
+ } else {
+ return errors.New("Expected a string")
+ }
+}
+
+func (from Time) Compare(to Time) int {
+ return time.Time(from).Compare(time.Time(to))
+}
+
+func (self *Time) Add(duration time.Duration) {
+ *self = Time(time.Time(*self).Add(duration))
}
diff --git a/model/timer.go b/model/timer.go
index 4c81962..a47369d 100644
--- a/model/timer.go
+++ b/model/timer.go
@@ -1,9 +1,12 @@
package model
type Timer struct {
- Id UUID
- Name string
- StartTime Time
- EndTime Time
+ Id UUID
+ Name string
+ StartTime Time
+ EndTime Time
}
+func (self Timer) IsFinished() bool {
+ return MakeTimeNow().Compare(self.EndTime) >= 0
+}
diff --git a/model/uuid.go b/model/uuid.go
index 4a25e41..6cade35 100644
--- a/model/uuid.go
+++ b/model/uuid.go
@@ -1,28 +1,27 @@
-package model
-
-import (
- sqldriver "database/sql/driver"
- "github.com/google/uuid"
-)
-
-type UUID struct {
- payload uuid.UUID
-}
-
-func MakeUUID() UUID {
- id, _ := uuid.NewV7()
- return UUID { payload: id }
-}
-
-func (self UUID) Value() (sqldriver.Value, error) {
- return self.payload[:], nil
-}
-
-func (self *UUID) Scan(value any) error {
- return self.payload.Scan(value)
-}
-
-func (self UUID) String() string {
- return self.payload.String()
-}
-
+package model
+
+import (
+ sqldriver "database/sql/driver"
+ "github.com/google/uuid"
+)
+
+type UUID struct {
+ payload uuid.UUID
+}
+
+func MakeUUID() UUID {
+ id, _ := uuid.NewV7()
+ return UUID{payload: id}
+}
+
+func (self UUID) Value() (sqldriver.Value, error) {
+ return self.payload[:], nil
+}
+
+func (self *UUID) Scan(value any) error {
+ return self.payload.Scan(value)
+}
+
+func (self UUID) String() string {
+ return self.payload.String()
+}