const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const User = require('./User'); const Club = require('./Club'); const Member = sequelize.define('Member', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, clubId: { type: DataTypes.INTEGER, allowNull: false, references: { model: 'Clubs', key: 'id' } }, userId: { type: DataTypes.INTEGER, allowNull: true, references: { model: 'Users', key: 'id' } }, name: { type: DataTypes.STRING, allowNull: false }, gender: { type: DataTypes.ENUM('남성', '여성'), allowNull: false }, memberType: { type: DataTypes.ENUM('정회원', '준회원', '운영진', '모임장'), allowNull: false, defaultValue: '준회원' }, handicap: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0 }, average: { type: DataTypes.FLOAT, allowNull: false, defaultValue: 0 }, games: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0 }, phone: { type: DataTypes.STRING, allowNull: true }, email: { type: DataTypes.STRING, allowNull: true }, joinDate: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, status: { type: DataTypes.ENUM('active', 'inactive', 'suspended', 'deleted'), allowNull: false, defaultValue: 'active' } }, { tableName: 'Members', timestamps: true }); // User와의 관계 설정 Member.belongsTo(User, { foreignKey: 'userId', as: 'user' }); // Club과의 관계 설정 Member.belongsTo(Club, { foreignKey: 'clubId', as: 'club' }); module.exports = Member;