package teamworkflow

type handlerBase struct{ service Service }

type CollectionHandler struct{ handlerBase }
type DetailHandler struct{ handlerBase }
type AvailabilityHandler struct {
	handlerBase
	archived bool
}

type routeHandlers struct {
	collection *CollectionHandler
	detail     *DetailHandler
	archive    *AvailabilityHandler
	restore    *AvailabilityHandler
}

func newRouteHandlers(service Service) routeHandlers {
	base := handlerBase{service: service}
	return routeHandlers{
		collection: &CollectionHandler{handlerBase: base},
		detail:     &DetailHandler{handlerBase: base},
		archive:    &AvailabilityHandler{handlerBase: base, archived: true},
		restore:    &AvailabilityHandler{handlerBase: base},
	}
}
