// models/Meeting.js module.exports = (sequelize, DataTypes) => { const Meeting = sequelize.define('Meeting', { id: { type: DataTypes.BIGINT, primaryKey: true, autoIncrement: true, }, title: { type: DataTypes.STRING, allowNull: false, }, description: { type: DataTypes.TEXT, allowNull: true, }, start_time: { type: DataTypes.DATE, allowNull: false, }, end_time: { type: DataTypes.DATE, allowNull: false, validate: { isAfterStart(value) { if (value <= this.start_time) { throw new Error('end_time은 start_time 이후여야 합니다.'); } }, }, }, location: { type: DataTypes.STRING, allowNull: true, }, deadline: { type: DataTypes.DATE, allowNull: true, }, type: { type: DataTypes.ENUM('OPEN', 'CLOSE'), allowNull: false, }, created_by: { type: DataTypes.BIGINT, allowNull: false, references: { model: 'Users', key: 'id', }, onDelete: 'CASCADE', }, }, { tableName: 'Meetings', timestamps: false, indexes: [ { fields: ['created_by'], }, ], }); return Meeting; };