ORM Sequalize не правильно определяет отношения между моделями
Создаю приложение, используя на беке Node.js, его библиотеку Express и ORM Sequalize для работы с БД. Имеются следующие модели: Рассылки и Квитанции.
const Mailings = sequelize.define("mailings", {
mailingId: {
type: types.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
mailingType: { type: types.STRING, allowNull: false },
dateOfSending: { type: types.DATE, allowNull: true, defaultValue: getCurrentDate()},
status: { type: types.STRING, allowNull: false, defaultValue: "Отправлено" },
linkOnReceipt: { type: types.STRING, allowNull: false },
});
const Receipts = sequelize.define("receipts", {
receiptId: {
type: types.INTEGER,
primaryKey: true,
//autoIncrement: true,
allowNull: false,
},
title: { type: types.STRING, allowNull: false },
text: { type: types.TEXT, allowNull: false },
});
// Связь 1 к 1
mailings.hasOne(receipts, { foreignKey: "receiptId" });
receipts.belongsTo(mailings, {
targetKey: "mailingId",
foreignKey: "receiptId",
});
Между этими моделями связь 1 к 1. Получается, что Рассылки это главная таблица. Без рассылок не могут существовать квитанции, одна рассылка может иметь только одну квитанцию и когда создаётся рассылка, сразу создаётся и квитанция. По логике, receiptId в таблице receipts выступает и в роли первичного ключа, и в роли внешнего для связи с Mailings Но тут встаёт две проблемы:
Первая заключается в том, что несмотря на связь один к одному, который должен реализовывать метод hasOne, модели почему-то генерируются со связью один ко многим.

Вторая проблема, собственно так же видна на рисунке. Таблицы соединены двумя отношениями. Скорей всего это происходит из-за того, что я использую метод hasOne() и belongsTo(). Метод hasOne() автоматически создал внешний ключ mailingMailingId в таблице receipts и связал её с родительской таблицей Mailings. Но это странное поведение. Даже в официальной документации по Sequalize указано, что ассоциации создаются парными вызовами методов haseOne() и belongsTo()

В общем помогите пожалуйста решить эти проблемы. Почему создаётся связь один ко многим? Почему создаётся ещё одна связь между таблицами? Ведь если убрать hasOne(), то тогда во-первых: я не смогу сказать, что это связь один к одному, а во-вторых, исходя из документации не будут созданы дополнительные методы для работы с данными.