Repository creation depends on many models, so moving it to service layer is better.
interface{}
any
Set[Type]
map[Type]bool/struct{}