Определите определение модели и ассоциации с Swagger - PullRequest
0 голосов
/ 28 февраля 2020

Мне нужна помощь, чтобы кое-что прояснить с определением модели Sequelize и связями в сочетании с использованием Swagger.

Я определил модель в sequelize и с помощью миграций я создал таблицу для этой модели. Название модели - рабочий заказ.

// WORK-ORDER MODEL

const Sequelize = require("sequelize");

const sequelize = require("../util/database");

const WorkOrder = sequelize.define("workOrders", {
  Id: {
    type: Sequelize.UUID,
    allowNull: false,
    primaryKey: true,
    defaultValue: Sequelize.UUIDV4
  },
  ProjectNumber: {
    type: Sequelize.INTEGER,
    allowNull: true
  },
  DateInspection: {
    type: Sequelize.DATE,
    allowNull: true
  }
  });

module.exports = WorkOrder;


// migrations model for work-order
"use strict";

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("workOrders", {
      Id: {
        type: Sequelize.UUID,
        allowNull: false,
        primaryKey: true,
        defaultValue: Sequelize.UUIDV4
      },
      ProjectNumber: {
        type: Sequelize.INTEGER,
        allowNull: true
      },
      DateInspection: {
        type: Sequelize.DATE,
        allowNull: true
      },
    });
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("workOrders");
  }
};

And I have a customer model and migrations model

// CUSTOMER MODEL

const Sequelize = require("sequelize");

const sequelize = require("../util/database");

const Customer = sequelize.define("customer", {
  Id: {
    type: Sequelize.UUID,
    allowNull: false,
    primaryKey: true,
    defaultValue: Sequelize.UUIDV4
  },
  Name: {
    type: Sequelize.STRING,
    allowNull: true
  },
 });

module.exports = Customer;

// migrations model for customer

"use strict";

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("customer", {
      Id: {
        type: Sequelize.UUID,
        allowNull: false,
        primaryKey: true,
        defaultValue: Sequelize.UUIDV4
      },
      Name: {
        type: Sequelize.STRING,
        allowNull: true
      },
    });
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("customer");
  }
};

В документации по sequelize говорится, что: Когда вы создаете ассоциации между вашими моделями в sequelize, автоматически создаются ссылки на внешние ключи с ограничениями.

В моем файле ассоциации я определил это

Customer.hasMany(WorkOrder);

И действительно, в моей таблице рабочих заданий я вижу, что в моей таблице workOrders есть добавленный столбец customerId.

Теперь мой вопрос / вызов. У меня также работает Swagger, и я хочу сослаться на customerId в модели workOrders, но в модели столбец customerId не определен, поскольку он был автоматически добавлен sequelize.

Что мне нужно делать с автоассоциациями, созданными sequelize и Swagger?

Заранее спасибо. Пит

...