const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const EventParticipant = sequelize.define('EventParticipant', { id: { type: DataTypes.INTEGER.UNSIGNED, primaryKey: true, autoIncrement: true, comment: '이벤트 참가자 고유 식별자' }, eventId: { type: DataTypes.INTEGER.UNSIGNED, allowNull: false, references: { model: 'Events', key: 'id' }, comment: '이벤트 ID' }, memberId: { type: DataTypes.INTEGER.UNSIGNED, allowNull: false, references: { model: 'Members', key: 'id' }, comment: '회원 ID' }, teamId: { type: DataTypes.INTEGER.UNSIGNED, allowNull: true, references: { model: 'EventTeams', key: 'id' }, comment: '이벤트 팀 ID' }, comment: { type: DataTypes.STRING, allowNull: true, comment: '비고' }, status: { type: DataTypes.ENUM('참가예정', '참가확정', '취소'), allowNull: false, defaultValue: '참가예정', comment: '참가 상태' }, paymentStatus: { type: DataTypes.ENUM('미납', '납부완료'), allowNull: false, defaultValue: '미납', comment: '참가비 납부 상태' } }, { tableName: 'EventParticipants', comment: '이벤트별 참가자 정보를 저장하는 테이블', timestamps: true }); // 관계 설정 EventParticipant.associate = (models) => { EventParticipant.belongsTo(models.Event, { foreignKey: 'eventId' }); EventParticipant.belongsTo(models.Member, { foreignKey: 'memberId' }); EventParticipant.belongsTo(models.EventTeam, { foreignKey: 'teamId' }); EventParticipant.hasMany(models.EventScore, { foreignKey: 'participantId' }); }; EventParticipant.associate = (models) => { EventParticipant.hasMany(models.EventScore, { foreignKey: 'participantId' }); EventParticipant.belongsTo(models.Member, { foreignKey: 'memberId' }); }; module.exports = EventParticipant;