From 6fd4ae8b771d37d0d66cd31caf440fe61e14c91c Mon Sep 17 00:00:00 2001 From: tpgus2603 <kakaneymar2424@gmail.com> Date: Sun, 8 Dec 2024 18:56:44 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=97=B0=EA=B4=80=EA=B4=80?= =?UTF-8?q?=EA=B3=84=20=EC=BA=90=EC=8A=A4=EC=BA=90=EC=9D=B4=EB=94=A9=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/index.js | 119 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 95 insertions(+), 24 deletions(-) diff --git a/models/index.js b/models/index.js index 7c656bc..7caa672 100644 --- a/models/index.js +++ b/models/index.js @@ -10,35 +10,106 @@ const Invite =require('./invite') const MeetingParticipant = require('./meetingParticipant'); // const ChatRooms = require('./ChatRooms'); -// 관계 설정 -Friend.belongsTo(User, { foreignKey: 'requester_id', as: 'requester' }); // 친구 요청을 보낸 사용자 -Friend.belongsTo(User, { foreignKey: 'receiver_id', as: 'receiver' }); // 친구 요청을 받은 사용자 +// 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', +}); -User.hasMany(Friend, { foreignKey: 'requester_id', as: 'sentRequests' }); // 친구 요청을 보낸 목록 -User.hasMany(Friend, { foreignKey: 'receiver_id', as: 'receivedRequests' }); // 친구 요청을 받은 목록 -// 연관 관계 설정 -Meeting.belongsTo(User, { foreignKey: 'created_by', as: 'creator' }); -User.hasMany(Meeting, { foreignKey: 'created_by', as: 'meetings' }); +// Meeting 관계 설정 +Meeting.belongsTo(User, { + foreignKey: 'created_by', + as: 'creator', + onDelete: 'SET NULL', +}); +User.hasMany(Meeting, { + foreignKey: 'created_by', + as: 'meetings', + onDelete: 'SET NULL', +}); -MeetingParticipant.belongsTo(Meeting, { foreignKey: 'meeting_id', as: 'meeting' }); -Meeting.hasMany(MeetingParticipant, { foreignKey: 'meeting_id', as: 'participants' }); +// 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', +}); -MeetingParticipant.belongsTo(User, { foreignKey: 'user_id', as: 'user' }); -User.hasMany(MeetingParticipant, { foreignKey: 'user_id', as: 'meetingParticipations' }); +// Schedule 관계 설정 +Schedule.belongsTo(User, { + foreignKey: 'user_id', + as: 'user', + onDelete: 'CASCADE', +}); +User.hasMany(Schedule, { + foreignKey: 'user_id', + as: 'schedules', + onDelete: 'CASCADE', +}); -Schedule.belongsTo(User, { foreignKey: 'user_id', as: 'user' }); -User.hasMany(Schedule, { foreignKey: 'user_id', as: 'schedules' }); +// 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' }); -User.hasMany(FcmToken, { foreignKey: 'userId', as: 'fcmTokenList' }); - -Invite.belongsTo(Meeting, { foreignKey: 'meeting_id', as: 'meeting' }); -Invite.belongsTo(User, { foreignKey: 'inviter_id', as: 'inviter' }); // 초대한 사용자 -Invite.belongsTo(User, { foreignKey: 'invitee_id', as: 'invitee' }); // 초대받은 사용자 - -User.hasMany(Invite, { foreignKey: 'inviter_id', as: 'sentInvites' }); // 보낸 초대 목록 -User.hasMany(Invite, { foreignKey: 'invitee_id', as: 'receivedInvites' }); // 받은 초대 목록 -Meeting.hasMany(Invite, { foreignKey: 'meeting_id', as: 'invites' }); // 해당 미팅의 모든 초대 module.exports = { sequelize, -- GitLab