Skip to content
Snippets Groups Projects
user.js 870 B
Newer Older
tpgus2603's avatar
tpgus2603 committed
// models/User.js

const { DataTypes } = require('sequelize');
const { sequelize } = require('../config/sequelize'); 

const User = sequelize.define('User', {
  id: {
    type: DataTypes.BIGINT, // 수정: id 필드를 BIGINT로 설정
    autoIncrement: true,
    primaryKey: true,
  },
  name: {
    type: DataTypes.STRING, // VARCHAR
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING, // VARCHAR
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
tpgus2603's avatar
tpgus2603 committed
    },
  },
}, {
  tableName: 'Users',
  timestamps: true, // createdAt과 updatedAt 자동 관리
});
tpgus2603's avatar
tpgus2603 committed

User.associate = (models) => {
  User.hasMany(models.Meeting, {
    foreignKey: 'created_by', 
    as: 'createdMeetings', 
  });

  User.hasMany(models.MeetingParticipant, {
    foreignKey: 'user_id',
    as: 'userMeetingParticipations', 
  });
};