synt_backend
Version:
Synt light-weight node backend service
128 lines (127 loc) • 3 kB
JavaScript
"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");
},
};