// feedback/course-feedback.entity.ts
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, Unique, CreateDateColumn, UpdateDateColumn, Index } from 'typeorm';
import { User } from '../users/user.entity';
import { Course } from '../course/course.entity';

@Entity()
@Unique('uniq_user_course_feedback', ['user', 'course'])      // 1 feedback per user per course
export class CourseFeedback {
  @PrimaryGeneratedColumn()
  id: number;

  @ManyToOne(() => User, { onDelete: 'CASCADE', eager: true })
  user: User;

  @ManyToOne(() => Course, { onDelete: 'CASCADE' })
  course: Course;

  @Index()
  @Column({ type: 'smallint' })
  rating: number; // 1..5

  @Column({ type: 'text', nullable: true })
  comment?: string;

  @Column({ default: 'published' })
  status: 'published' | 'pending' | 'hidden';

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;
}
