Re_Backend/src/migrations/20260318100001-create-form16-debit-note-sap-responses.ts
2026-03-18 12:59:20 +05:30

71 lines
1.8 KiB
TypeScript

import type { QueryInterface } from 'sequelize';
import { DataTypes } from 'sequelize';
/**
* Separate table for Form 16 debit note SAP responses (OUTGOING FORM16_DBT).
* Credit note SAP responses remain in form16_sap_responses only.
*/
module.exports = {
up: async (queryInterface: QueryInterface) => {
await queryInterface.createTable('form16_debit_note_sap_responses', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
file_name: {
type: DataTypes.STRING(255),
allowNull: false,
unique: true,
},
debit_note_id: {
type: DataTypes.INTEGER,
allowNull: true,
references: { model: 'form_16_debit_notes', key: 'id' },
onDelete: 'SET NULL',
},
claim_number: {
type: DataTypes.STRING(100),
allowNull: true,
},
sap_document_number: {
type: DataTypes.STRING(100),
allowNull: true,
},
msg_typ: {
type: DataTypes.STRING(20),
allowNull: true,
},
message: {
type: DataTypes.TEXT,
allowNull: true,
},
raw_row: {
type: DataTypes.JSONB,
allowNull: true,
},
storage_url: {
type: DataTypes.STRING(500),
allowNull: true,
},
created_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
updated_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
});
await queryInterface.addIndex('form16_debit_note_sap_responses', ['debit_note_id']);
await queryInterface.addIndex('form16_debit_note_sap_responses', ['claim_number']);
},
down: async (queryInterface: QueryInterface) => {
await queryInterface.dropTable('form16_debit_note_sap_responses');
},
};