module.exports = (sequelize, DataTypes) => sequelize.define("NotificationDelivery", { id: { type: DataTypes.STRING, primaryKey: true }, notificationId: { type: DataTypes.STRING, allowNull: true }, userId: { type: DataTypes.STRING, allowNull: true }, channel: { type: DataTypes.ENUM("EMAIL", "PUSH"), allowNull: false }, recipient: { type: DataTypes.STRING, allowNull: false }, templateKey: { type: DataTypes.STRING, allowNull: false }, status: { type: DataTypes.ENUM("QUEUED", "PROCESSING", "SENT", "FAILED"), allowNull: false, defaultValue: "QUEUED" }, attemptCount: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0 }, lastAttemptAt: DataTypes.DATE, sentAt: DataTypes.DATE, failedAt: DataTypes.DATE, failureCode: DataTypes.STRING, }, { tableName: "notification_deliveries", timestamps: true });