71 lines
1.8 KiB
TypeScript
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');
|
|
},
|
|
};
|