@tomei/customer-base
Version:
Tomei Customer Base Package
93 lines (90 loc) • 2.2 kB
JavaScript
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('customer_SyncLog', {
SyncLogId: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING(30),
},
CustomerId: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING(30),
references: {
model: 'customer_Base',
key: 'CustomerId',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
SourceSystemCode: {
allowNull: false,
type: Sequelize.STRING(5),
},
TargetSystemCode: {
allowNull: false,
type: Sequelize.STRING(5),
},
EventId: {
allowNull: true,
type: Sequelize.STRING(30),
},
EventType: {
allowNull: true,
type: Sequelize.ENUM('Insert', 'Update', 'Delete'),
},
Status: {
allowNull: true,
type: Sequelize.ENUM('Pending', 'Success', 'Skipped', 'Failed'),
},
PayloadSnapshot: {
allowNull: true,
type: Sequelize.JSON,
},
TrigerredBy: {
allowNull: false,
type: Sequelize.STRING(10),
},
QueueJobId: {
allowNull: true,
type: Sequelize.STRING(30),
},
SyncedAt: {
allowNull: true,
type: Sequelize.DATE,
},
CreatedAt: {
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
type: Sequelize.DATE,
},
UpdatedAt: {
allowNull: false,
defaultValue: Sequelize.literal(
'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
),
type: Sequelize.DATE,
},
RetryCount: {
allowNull: true,
type: Sequelize.INTEGER,
},
LastErrorMessage: {
allowNull: true,
type: Sequelize.TEXT,
},
LastAttemptAt: {
allowNull: true,
type: Sequelize.DATE,
},
LastStatus: {
allowNull: true,
type: Sequelize.STRING(10),
},
});
},
down: async (queryInterface) => {
await queryInterface.dropTable('customer_SyncLog');
},
};