UNPKG

@replyke/express

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

69 lines (68 loc) 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sequelize_1 = require("sequelize"); const User_1 = __importDefault(require("./User")); class AppNotification extends sequelize_1.Model { static initModel(sequelize) { AppNotification.init({ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, primaryKey: true, allowNull: false, }, projectId: { type: sequelize_1.DataTypes.UUID, allowNull: false, }, userId: { type: sequelize_1.DataTypes.UUID, allowNull: false, }, type: { type: sequelize_1.DataTypes.STRING, allowNull: false, }, isRead: { type: sequelize_1.DataTypes.BOOLEAN, allowNull: false, defaultValue: false, }, action: { type: sequelize_1.DataTypes.STRING, allowNull: false, defaultValue: "invalid-action", }, metadata: { type: sequelize_1.DataTypes.JSONB, allowNull: false, }, createdAt: { type: sequelize_1.DataTypes.DATE, allowNull: false, }, updatedAt: { type: sequelize_1.DataTypes.DATE, allowNull: false, }, }, { sequelize, modelName: "AppNotification", tableName: "AppNotifications", timestamps: true, }); } /** * Define associations to other models */ static associate() { AppNotification.belongsTo(User_1.default, { foreignKey: "userId", onDelete: "CASCADE", // Ensures each Notification belongs to a User }); } } exports.default = AppNotification;