sprechstunden-go/models/officeHour.go

29 lines
951 B
Go
Raw Normal View History

2022-11-04 20:15:38 +00:00
// The package models defines the stucts for objects, their repositories and the signatures of their functions.
2022-08-29 20:58:19 +00:00
package models
type OfficeHour struct {
Id int
Tutor Tutor
Date
2022-09-27 14:40:47 +00:00
Room
Course
2022-11-04 20:15:38 +00:00
RoomName string // A description of the room for special rooms that are not preconfigured.
2022-08-29 20:58:19 +00:00
Info string
Active bool
2022-11-04 20:15:38 +00:00
Duration int // Duration in minutes. Must be divisible by the config field "MinuteGranularity".
2022-08-29 20:58:19 +00:00
}
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)
2022-08-29 20:58:19 +00:00
Delete(officeHour OfficeHour) error
Add(officeHour OfficeHour) (int, error)
AllowedAt(date Date, duration int, room Room, activeOnly bool) (bool, error)
2022-08-29 20:58:19 +00:00
}
2022-09-07 19:48:40 +00:00
func (officeHour OfficeHour) EndDate() Date {
return GetEndDate(officeHour.Date, officeHour.Duration, false)
}