const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const Enrollment = sequelize.define('Enrollment', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, status: { type: DataTypes.ENUM('pending', 'active', 'completed', 'cancelled'), allowNull: false, defaultValue: 'pending' }, enrolledAt: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, completedAt: { type: DataTypes.DATE, allowNull: true }, progress: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, validate: { min: 0, max: 100 } }, paymentStatus: { type: DataTypes.ENUM('pending', 'paid', 'failed', 'refunded'), allowNull: false, defaultValue: 'pending' }, paymentAmount: { type: DataTypes.DECIMAL(10, 2), allowNull: false, defaultValue: 0.00 }, paymentDate: { type: DataTypes.DATE, allowNull: true }, certificateIssued: { type: DataTypes.BOOLEAN, defaultValue: false }, certificateIssuedAt: { type: DataTypes.DATE, allowNull: true }, notes: { type: DataTypes.TEXT, allowNull: true } }, { tableName: 'enrollments', indexes: [ { fields: ['userId'] }, { fields: ['courseId'] }, { fields: ['status'] }, { fields: ['paymentStatus'] } ] }); module.exports = Enrollment;