merch-api/pkg/utils/time.go

37 lines
879 B
Go
Raw Normal View History

2026-02-23 20:46:53 +03:00
package utils
import (
"database/sql"
"time"
)
type timeUtil interface {
2026-03-01 22:11:12 +03:00
// TimeNowUTC Use it everywhere, when you need current time.
2026-02-23 20:46:53 +03:00
TimeNowUTC() time.Time
2026-03-01 22:11:12 +03:00
// DeletedNullTime returns empty sql.NullTime struct.
2026-02-23 20:46:53 +03:00
DeletedNullTime() sql.NullTime
2026-03-01 22:11:12 +03:00
// NullTimeNowUTC returns valid sql.NullTime struct with current time in UTC.
2026-02-23 20:46:53 +03:00
NullTimeNowUTC() sql.NullTime
2026-03-01 22:11:12 +03:00
// NullTimeFromNow converts time.Time to valid sql.NullTime struct.
NullTimeFromNow(now time.Time) sql.NullTime
2026-02-23 20:46:53 +03:00
}
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}
}
2026-03-01 22:11:12 +03:00
func (h *Handler) NullTimeFromNow(now time.Time) sql.NullTime {
return sql.NullTime{Time: now, Valid: true}
2026-02-23 20:46:53 +03:00
}