feat(foreign key): add foreign shape and update feature
merge files