Files
2025-04-26 08:04:04 +09:00

63 lines
1.5 KiB
JavaScript

const { DataTypes } = require('sequelize');
const { sequelize } = require('../config/database');
const ClubSubscription = sequelize.define('ClubSubscription', {
id: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true,
autoIncrement: true,
comment: '클럽-구독 연결 고유 식별자'
},
clubId: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
references: {
model: 'Clubs',
key: 'id'
},
comment: '클럽 ID'
},
planId: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
references: {
model: 'SubscriptionPlans',
key: 'id'
},
comment: '구독 플랜 ID'
},
status: {
type: DataTypes.ENUM('active', 'expired', 'suspended'),
defaultValue: 'active',
allowNull: false,
comment: '구독 상태'
},
startDate: {
type: DataTypes.DATE,
allowNull: false,
comment: '구독 시작일'
},
endDate: {
type: DataTypes.DATE,
allowNull: false,
comment: '구독 종료일'
},
price: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
comment: '구독 가격'
}
}, {
tableName: 'ClubSubscriptions',
comment: '클럽별 구독 정보(플랜 등)를 저장하는 테이블',
timestamps: true
});
ClubSubscription.associate = (models) => {
ClubSubscription.belongsTo(models.SubscriptionPlan, { foreignKey: 'planId' });
ClubSubscription.belongsTo(models.Club, { foreignKey: 'clubId' });
};
module.exports = ClubSubscription;