package model import ( "time" "errors" sqldriver "database/sql/driver" ) type Time time.Time func MakeTimeNow() Time { return Time(time.Now().UTC()) } func (self Time) String() string { return time.Time(self).String() } func (self Time) Value() (sqldriver.Value, error) { return time.Time(self).Format(time.RFC3339), 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") } }