The goal is to create an intermediate model (user_product) which has two foreign keys: user and product.
Can we achieve this with user and product structs in external files (somehow) or have we to put them in the same file with UserProduct one, like in the docs?
At this time, putting them externally and importing them in UserProduct will throw an import cycle error, of course.
The structure:
app/
models/
product.go
user.go
user_product.go
The problem is that if I import product.go
in user_product
with import "github.com/somehow/somehow/models"
, obviously it imports also user_product
which imports models
and so on.
All files in one folder belong to the same package (must have the same package name at the top of the file!).
You do not need to import other files that belong to the same package (the same folder).
Just remove the import and you should still have access to product in user_product and vice versa.