This commit is contained in:
2024-04-15 22:13:07 +02:00
parent 1e9b8d0fa1
commit 6ceda23af4
2 changed files with 53 additions and 54 deletions

View File

@ -1,42 +1,41 @@
package model package model
import ( import (
sqldriver "database/sql/driver" sqldriver "database/sql/driver"
"errors" "errors"
"time" "time"
) )
type Time time.Time type Time time.Time
func MakeTimeNow() Time { func MakeTimeNow() Time {
return Time(time.Now().UTC()) return Time(time.Now().UTC())
} }
func (self Time) AsUTCString() string { 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) { func (self Time) Value() (sqldriver.Value, error) {
return self.AsUTCString(), nil return self.AsUTCString(), nil
} }
func (self *Time) Scan(value any) error { func (self *Time) Scan(value any) error {
if valueStr, ok := value.(string); ok { if valueStr, ok := value.(string); ok {
parsedTime, err := time.Parse(time.RFC3339, valueStr) parsedTime, err := time.Parse(time.RFC3339, valueStr)
if err == nil { if err == nil {
*self = Time(parsedTime.UTC()) *self = Time(parsedTime.UTC())
} }
return err return err
} else { } else {
return errors.New("Expected a string") return errors.New("Expected a string")
} }
} }
func (from Time) Compare(to Time) int { func (from Time) Compare(to Time) int {
return time.Time(from).Compare(time.Time(to)) return time.Time(from).Compare(time.Time(to))
} }
func (self *Time) Add(duration time.Duration) { func (self *Time) Add(duration time.Duration) {
*self = Time(time.Time(*self).Add(duration)) *self = Time(time.Time(*self).Add(duration))
} }

View File

@ -1,12 +1,12 @@
package model package model
type Timer struct { type Timer struct {
Id UUID Id UUID
Name string Name string
StartTime Time StartTime Time
EndTime Time EndTime Time
} }
func (self Timer) IsFinished() bool { func (self Timer) IsFinished() bool {
return MakeTimeNow().Compare(self.EndTime) >= 0 return MakeTimeNow().Compare(self.EndTime) >= 0
} }