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