USE trainer_attendance;

CREATE TABLE IF NOT EXISTS trainer_ratings (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  trainer_id INT UNSIGNED NOT NULL,
  course_id INT UNSIGNED NOT NULL,
  trainee_user_id INT UNSIGNED NOT NULL,
  stars TINYINT UNSIGNED NOT NULL,
  comment VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_rating_course_trainee (course_id, trainee_user_id),
  INDEX idx_rating_trainer (trainer_id),
  CONSTRAINT fk_rating_trainer FOREIGN KEY (trainer_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT fk_rating_course FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE,
  CONSTRAINT fk_rating_trainee FOREIGN KEY (trainee_user_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT chk_rating_stars CHECK (stars BETWEEN 1 AND 5)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
