eduverse-backend / src /modules /analytics /entities /course-analytics.entity.ts
tarekdx3's picture
Sprint 3 Done and TESTED
e67d35c
Raw
History Blame Contribute Delete
1.54 kB
import {
Entity,
PrimaryGeneratedColumn,
Column,
ManyToOne,
JoinColumn,
CreateDateColumn,
} from 'typeorm';
import { User } from '../../auth/entities/user.entity';
@Entity('course_analytics')
export class CourseAnalytics {
@PrimaryGeneratedColumn({
name: 'analytics_id',
type: 'bigint',
unsigned: true,
})
analyticsId: number;
@Column({ name: 'course_id', type: 'bigint', unsigned: true })
courseId: number;
@Column({ name: 'instructor_id', type: 'bigint', unsigned: true })
instructorId: number;
@Column({ name: 'total_students', type: 'int', default: 0 })
totalStudents: number;
@Column({ name: 'active_students', type: 'int', default: 0 })
activeStudents: number;
@Column({
name: 'average_grade',
type: 'decimal',
precision: 5,
scale: 2,
nullable: true,
})
averageGrade: number;
@Column({
name: 'average_attendance',
type: 'decimal',
precision: 5,
scale: 2,
nullable: true,
})
averageAttendance: number;
@Column({
name: 'completion_rate',
type: 'decimal',
precision: 5,
scale: 2,
nullable: true,
})
completionRate: number;
@Column({
name: 'engagement_score',
type: 'decimal',
precision: 5,
scale: 2,
nullable: true,
})
engagementScore: number;
@Column({ name: 'calculation_date', type: 'date' })
calculationDate: Date;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@ManyToOne(() => User)
@JoinColumn({ name: 'instructor_id' })
instructor: User;
}