automated-invoice-processing-agent-backend / src /db /migrations /20240711110620-create-invoice-table.js
narinder1231's picture
update invoice model for soft delete
378503c
'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
await queryInterface.createTable('invoices', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
reference_number: {
type: Sequelize.STRING(100),
unique: true
},
invoice_number:{
type: Sequelize.STRING(100)
},
vendor_name: {
type: Sequelize.STRING(255)
},
invoice_date: {
type: Sequelize.DATE
},
total: {
type: Sequelize.DECIMAL(10, 2)
},
amount_paid: {
allowNull: false,
type: Sequelize.DECIMAL(10, 2),
defaultValue: 0
},
due_date: {
type: Sequelize.DATE
},
term: {
type: Sequelize.STRING(50)
},
description: {
type: Sequelize.TEXT
},
payment_status: {
type: Sequelize.STRING(50),
defaultValue: 'pending'
},
pw_work_order_id: {
type: Sequelize.BIGINT
},
pw_vendor_id: {
type: Sequelize.BIGINT
},
filename:{
type: Sequelize.STRING(255),
allowNull: false,
},
pdf_url: {
type: Sequelize.STRING(255)
},
status: {
allowNull: false,
type: Sequelize.STRING(50),
defaultValue:'pending'
},
uploaded_by: {
allowNull: false,
type: Sequelize.INTEGER
},
created_at: {
type: Sequelize.DATE
},
updated_at: {
type: Sequelize.DATE
},
deleted_at: {
type: Sequelize.DATE,
allowNull: true
}
});
},
async down(queryInterface, Sequelize) {
await queryInterface.dropTable('invoices');
}
};