Skip to content
Snippets Groups Projects
Commit 110c8109 authored by tpgus2603's avatar tpgus2603
Browse files

refacotr: cascading 연관 관계 설정

parent b124ee3c
No related branches found
No related tags found
1 merge request!42[#25] 배포코드 master브랜치로 이동
...@@ -10,32 +10,106 @@ const Invite =require('./invite') ...@@ -10,32 +10,106 @@ const Invite =require('./invite')
const MeetingParticipant = require('./meetingParticipant'); const MeetingParticipant = require('./meetingParticipant');
// const ChatRooms = require('./ChatRooms'); // const ChatRooms = require('./ChatRooms');
// 관계 설정 // Friend 관계 설정
Friend.belongsTo(User, { foreignKey: 'requester_id', as: 'requester' }); // 친구 요청을 보낸 사용자 Friend.belongsTo(User, {
Friend.belongsTo(User, { foreignKey: 'receiver_id', as: 'receiver' }); // 친구 요청을 받은 사용자 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' }); // 친구 요청을 보낸 목록 // Meeting 관계 설정
User.hasMany(Friend, { foreignKey: 'receiver_id', as: 'receivedRequests' }); // 친구 요청을 받은 목록 Meeting.belongsTo(User, {
// 연관 관계 설정 foreignKey: 'created_by',
Meeting.belongsTo(User, { foreignKey: 'created_by', as: 'creator' }); as: 'creator',
User.hasMany(Meeting, { foreignKey: 'created_by', as: 'meetings' }); onDelete: 'SET NULL', // Meetings might persist even if the creator is deleted
});
User.hasMany(Meeting, {
foreignKey: 'created_by',
as: 'meetings',
onDelete: 'SET NULL',
});
MeetingParticipant.belongsTo(Meeting, { foreignKey: 'meeting_id', as: 'meeting' }); // MeetingParticipant 관계 설정
Meeting.hasMany(MeetingParticipant, { foreignKey: 'meeting_id', as: 'participants' }); 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' }); // Schedule 관계 설정
User.hasMany(MeetingParticipant, { foreignKey: 'user_id', as: 'meetingParticipations' }); 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' }); // Invite 관계 설정
User.hasMany(Schedule, { foreignKey: 'user_id', as: 'schedules' }); 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',
});
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 = { module.exports = {
sequelize, sequelize,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment