import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, OneToMany, } from 'typeorm'; import { Order } from './order.entity'; import { UserCourse } from './user-course.entity'; import { Comment } from './comment.entity'; @Entity('courses') export class Course { @PrimaryGeneratedColumn() id: number; @Column({ type: 'varchar', length: 200 }) title: string; @Column({ type: 'text', nullable: true }) description: string; @Column({ type: 'varchar', length: 255, name: 'cover_image' }) coverImage: string; @Column({ type: 'varchar', length: 500, name: 'drive_link' }) driveLink: string; @Column({ type: 'decimal', precision: 10, scale: 2 }) price: number; @Column({ type: 'varchar', length: 50, nullable: true }) category: string; @Column({ type: 'int', default: 0, name: 'view_count' }) viewCount: number; @Column({ type: 'int', default: 0, name: 'like_count' }) likeCount: number; @Column({ type: 'int', default: 0, name: 'star_count' }) starCount: number; @Column({ type: 'boolean', default: true, name: 'is_active' }) isActive: boolean; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; @OneToMany(() => Order, (order) => order.course) orders: Order[]; @OneToMany(() => UserCourse, (userCourse) => userCourse.course) userCourses: UserCourse[]; @OneToMany(() => Comment, (comment) => comment.course) comments: Comment[]; }