Friendship management added

This commit is contained in:
Torsten Schulz
2024-10-27 13:14:05 +01:00
parent f74a16e58e
commit 7f8709516d
13 changed files with 406 additions and 31 deletions

View File

@@ -27,6 +27,7 @@ import TitleHistory from './forum/title_history.js';
import ForumPermission from './forum/forum_permission.js';
import ForumUserPermission from './forum/forum_user_permission.js';
import ForumForumPermission from './forum/forum_forum_permission.js';
import Friendship from './community/friendship.js';
export default function setupAssociations() {
// UserParam related associations
@@ -156,4 +157,9 @@ export default function setupAssociations() {
ForumPermission.hasMany(ForumUserPermission, { foreignKey: 'permissionId' });
ForumUserPermission.belongsTo(ForumPermission, { foreignKey: 'permissionId' });
Friendship.belongsTo(User, { foreignKey: 'user1Id', as: 'friendSender' });
Friendship.belongsTo(User, { foreignKey: 'user2Id', as: 'friendReceiver' });
User.hasMany(Friendship, { foreignKey: 'user1Id', as: 'friendSender' });
User.hasMany(Friendship, { foreignKey: 'user2Id', as: 'friendReceiver' });
}

View File

@@ -0,0 +1,37 @@
import { sequelize } from '../../utils/sequelize.js';
import { DataTypes } from 'sequelize';
const Friendship = sequelize.define('friendship', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
user1Id: {
type: DataTypes.INTEGER,
allowNull: false
},
user2Id: {
type: DataTypes.INTEGER,
allowNull: false
},
accepted: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
denied: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
withdrawn: {
type: DataTypes.BOOLEAN,
defaultValue: false
}
}, {
tableName: 'friendship',
schema: 'community',
underscored: true,
timestamps: true,
});
export default Friendship;

View File

@@ -31,6 +31,7 @@ import Message from './forum/message.js';
import MessageHistory from './forum/message_history.js';
import MessageImage from './forum/message_image.js';
import ForumForumPermission from './forum/forum_forum_permission.js';
import Friendship from './community/friendship.js';
const models = {
SettingsType,
@@ -66,6 +67,7 @@ const models = {
Message,
MessageHistory,
MessageImage,
Friendship,
};
export default models;