// officeHour package models type OfficeHour struct { Id int Tutor Tutor Date Room Room Course Course Info string Active bool Duration int } type OfficeHourRepository interface { FindById(id int) (OfficeHour, error) FindByCourse(course Course, activeOnly bool) ([]OfficeHour, error) FindByRoom(room Room, activatedOnly bool) ([]OfficeHour, error) GetAll(activatedOnly bool) ([]OfficeHour, error) Delete(officeHour OfficeHour) error Add(officeHour OfficeHour) (int, error) AllowedAt(date Date, duration int, room Room, activeOnly bool) (bool, error) } func (officeHour OfficeHour) EndDate() Date { return GetEndDate(officeHour.Date, officeHour.Duration, false) }