Используя gorm столкнулся с проблемой. Например, есть модель site, у которой есть связи с моделью user. А у того в свою очередь связь с site.
type User struct {
ID int `json:"id"`
Sites []Site `json:"-"`
}
Например так, но если попытаться вынести это в разные пакеты, будет циклический импорт. Сейчас у меня каша из всех моделей в одном пакете. Но это кошмар.