brainbuffer-go/pkg/brainbuffer/domain/appointment/entity.go
2022-06-03 23:44:08 +06:00

42 lines
670 B
Go

package appointment
import (
"brainbuffer/pkg/brainbuffer/domain/scheduling"
"time"
)
type CompletionStatus int
const (
None CompletionStatus = iota
Missed
Completed
Skipped
)
type TimeStatus int
const (
Overdue TimeStatus = iota
Upcoming
)
type Appointment struct {
ID int64
TaskID int64
CompletionStatus CompletionStatus
SchedulingPattern scheduling.Pattern
PlannedTime time.Time
DurationOffset time.Duration
CreationTime time.Time
}
func (a *Appointment) TimeStatus() TimeStatus {
if a.PlannedTime.Before(time.Now()) {
return Overdue
} else {
return Upcoming
}
}
type Appointments []*Appointment