merch-api/pkg/utils/time.go
2026-03-02 17:30:17 +03:00

36 lines
898 B
Go

package utils
import (
"database/sql"
"time"
)
type timeUtil interface {
// TimeNowUTC Use it everywhere, when you need current time.
TimeNowUTC() time.Time
// DeletedNullTime returns empty sql.NullTime struct with valid = false.
DeletedNullTime() sql.NullTime
// NullTimeNowUTC returns valid sql.NullTime struct with current time in UTC.
NullTimeNowUTC() sql.NullTime
// NullTimeFromNow converts time.Time to valid sql.NullTime struct.
NullTimeFromNow(now time.Time) sql.NullTime
}
func (h *Handler) TimeNowUTC() time.Time {
return time.Now().UTC()
}
func (h *Handler) DeletedNullTime() sql.NullTime {
return sql.NullTime{Time: time.Time{}, Valid: false}
}
func (h *Handler) NullTimeNowUTC() sql.NullTime {
return sql.NullTime{Time: h.TimeNowUTC(), Valid: true}
}
func (h *Handler) NullTimeFromNow(now time.Time) sql.NullTime {
return sql.NullTime{Time: now, Valid: true}
}