import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, ManyToOne, JoinColumn, Index, } from 'typeorm'; import { User } from './user.entity'; import { Course } from './course.entity'; @Entity('user_courses') @Index(['userId', 'courseId'], { unique: true }) export class UserCourse { @PrimaryGeneratedColumn() id: number; @Column({ name: 'user_id' }) userId: number; @Column({ name: 'course_id' }) courseId: number; @Column({ type: 'varchar', length: 64, unique: true, name: 'access_token' }) accessToken: string; @Column({ type: 'datetime', name: 'expired_at' }) expiredAt: Date; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @ManyToOne(() => User, (user) => user.userCourses) @JoinColumn({ name: 'user_id' }) user: User; @ManyToOne(() => Course, (course) => course.userCourses) @JoinColumn({ name: 'course_id' }) course: Course; }