feat: Implement Phase 2 cross-cutting services with email and notification enhancements
- Refactor email verification and password reset utilities to use new email service. - Introduce email delivery queue and notification delivery model for better tracking. - Enhance file validation and storage services for improved security and ownership management. - Add cron job for cleaning inactive notifications with retention policy. - Update document worker to handle document generation and storage more efficiently. - Implement logging improvements in activity and log workers. - Create comprehensive documentation for new API endpoints and services. - Add unit tests for file validation and notification policies to ensure robustness.
This commit is contained in:
@@ -43,12 +43,21 @@ module.exports = (sequelize, DataTypes) => {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
storage_provider: { type: DataTypes.STRING, allowNull: false, defaultValue: "S3" },
|
||||
safe_name: { type: DataTypes.STRING, allowNull: true },
|
||||
checksum: { type: DataTypes.STRING(64), allowNull: true },
|
||||
owner_type: { type: DataTypes.STRING, allowNull: false, defaultValue: "USER" },
|
||||
owner_id: { type: DataTypes.STRING, allowNull: false },
|
||||
visibility: { type: DataTypes.ENUM("PRIVATE", "PUBLIC"), allowNull: false, defaultValue: "PRIVATE" },
|
||||
status: { type: DataTypes.ENUM("PENDING", "AVAILABLE", "FAILED", "DELETED"), allowNull: false, defaultValue: "PENDING" },
|
||||
deletedAt: { type: DataTypes.DATE, allowNull: true },
|
||||
},
|
||||
{
|
||||
tableName: "uploads",
|
||||
timestamps: true,
|
||||
},
|
||||
);
|
||||
upload.associate = (models) => upload.belongsTo(models.User, { foreignKey: "uploaded_by", as: "uploader", constraints: false });
|
||||
|
||||
return upload;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user