index.js 2.65 KiB
// models/index.js
const sequelize = require('../config/sequelize');
const User = require('./user');
const Schedule = require('./schedule');
const Meeting = require('./meeting');
const Friend = require('./friend');
const FcmToken = require('./fcmToken');
const Invite =require('./invite')
const MeetingParticipant = require('./meetingParticipant');
// const ChatRooms = require('./ChatRooms');
// Friend 관계 설정
Friend.belongsTo(User, {
foreignKey: 'requester_id',
as: 'requester',
onDelete: 'CASCADE',
});
Friend.belongsTo(User, {
foreignKey: 'receiver_id',
as: 'receiver',
onDelete: 'CASCADE',
});
User.hasMany(Friend, {
foreignKey: 'requester_id',
as: 'sentRequests',
onDelete: 'CASCADE',
});
User.hasMany(Friend, {
foreignKey: 'receiver_id',
as: 'receivedRequests',
onDelete: 'CASCADE',
});
// Meeting 관계 설정
Meeting.belongsTo(User, {
foreignKey: 'created_by',
as: 'creator',
onDelete: 'SET NULL',
});
User.hasMany(Meeting, {
foreignKey: 'created_by',
as: 'meetings',
onDelete: 'SET NULL',
});
// MeetingParticipant 관계 설정
MeetingParticipant.belongsTo(Meeting, {
foreignKey: 'meeting_id',
as: 'meeting',
onDelete: 'CASCADE',
});
Meeting.hasMany(MeetingParticipant, {
foreignKey: 'meeting_id',
as: 'participants',
onDelete: 'CASCADE',
});
MeetingParticipant.belongsTo(User, {
foreignKey: 'user_id',
as: 'user',
onDelete: 'CASCADE',
});
User.hasMany(MeetingParticipant, {
foreignKey: 'user_id',
as: 'meetingParticipations',
onDelete: 'CASCADE',
});
// Schedule 관계 설정
Schedule.belongsTo(User, {
foreignKey: 'user_id',
as: 'user',
onDelete: 'CASCADE',
});
User.hasMany(Schedule, {
foreignKey: 'user_id',
as: 'schedules',
onDelete: 'CASCADE',
});
// Invite 관계 설정
Invite.belongsTo(Meeting, {
foreignKey: 'meeting_id',
as: 'meeting',
onDelete: 'CASCADE',
});
Invite.belongsTo(User, {
foreignKey: 'inviter_id',
as: 'inviter',
onDelete: 'CASCADE',
});
Invite.belongsTo(User, {
foreignKey: 'invitee_id',
as: 'invitee',
onDelete: 'CASCADE',
});
User.hasMany(Invite, {
foreignKey: 'inviter_id',
as: 'sentInvites',
onDelete: 'CASCADE',
});
User.hasMany(Invite, {
foreignKey: 'invitee_id',
as: 'receivedInvites',
onDelete: 'CASCADE',
});
Meeting.hasMany(Invite, {
foreignKey: 'meeting_id',
as: 'invites',
onDelete: 'CASCADE',
});
FcmToken.belongsTo(User,{
foreignKey:'userId',
as:'user',
onDelete:'CASCADE',
});
User.hasMany(FcmToken,
{
foreignKey:'userId',
as:'fcmTokenList',
onDelete:'CASCADE',
});
module.exports = {
sequelize,
User,
Friend,
Schedule,
Meeting,
MeetingParticipant,
Friend,
Invite,
FcmToken,
};