UNPKG

synt_backend

Version:

Synt light-weight node backend service

128 lines (127 loc) 3 kB
"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable("Provisions", { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, VMEId: { type: Sequelize.INTEGER, references: { model: "VMEs", key: "id", }, allowNull: true, defaultValue: Sequelize.UUIDV4, onUpdate: "CASCADE", onDelete: "CASCADE", }, FinancialYearId: { type: Sequelize.INTEGER, references: { model: "FinancialYears", key: "id", }, allowNull: true, defaultValue: Sequelize.UUIDV4, onUpdate: "CASCADE", onDelete: "CASCADE", }, LotId: { type: Sequelize.INTEGER, references: { model: "Lots", key: "id", }, allowNull: false, defaultValue: Sequelize.UUIDV4, onUpdate: "CASCADE", onDelete: "CASCADE", }, JournalId: { type: Sequelize.INTEGER, references: { model: "Journals", key: "id", }, allowNull: false, defaultValue: Sequelize.UUIDV4, onUpdate: "CASCADE", onDelete: "CASCADE", }, GeneralLedgerAccountId: { type: Sequelize.INTEGER, references: { model: "GeneralLedgerAccounts", key: "id", }, allowNull: true, //TODO: make false defaultValue: Sequelize.UUIDV4, onUpdate: "NO ACTION", onDelete: "NO ACTION", }, PaymentConditionId: { type: Sequelize.INTEGER, references: { model: "PaymentConditions", key: "id", }, allowNull: false, defaultValue: Sequelize.UUIDV4, onUpdate: "CASCADE", onDelete: "CASCADE", }, type: { type: Sequelize.ENUM( "guarantee_fund", "working_capital", "reserve_capital", "exceptional_capital" ), }, amount: { type: Sequelize.DECIMAL(7, 2), defaultValue: 0, }, correction: { type: Sequelize.DECIMAL(7, 2), defaultValue: 0, }, invoice_date: { type: Sequelize.DATE, }, due_date: { type: Sequelize.DATE, }, paid_at: { type: Sequelize.DATE, }, reference: { type: Sequelize.STRING, }, description: { type: Sequelize.STRING, }, email_message: { type: Sequelize.TEXT, }, is_cancelled: { type: Sequelize.BOOLEAN, }, createdAt: { allowNull: false, type: Sequelize.DATE, }, updatedAt: { allowNull: false, type: Sequelize.DATE, }, }); }, down: async (queryInterface) => { await queryInterface.dropTable("Provisions"); }, };