-- ترقية الأدوار والصلاحيات وسجل العمليات
USE trainer_attendance;

ALTER TABLE users
  MODIFY role ENUM('admin','trainer','trainee') NOT NULL DEFAULT 'trainee';

ALTER TABLE users
  ADD COLUMN IF NOT EXISTS password_hash VARCHAR(255) NULL AFTER role,
  ADD COLUMN IF NOT EXISTS created_by INT UNSIGNED NULL AFTER password_hash;

CREATE TABLE IF NOT EXISTS activity_logs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  actor_user_id INT UNSIGNED NULL,
  actor_name VARCHAR(191) NULL,
  actor_role VARCHAR(30) NULL,
  action_key VARCHAR(80) NOT NULL,
  action_label VARCHAR(255) NOT NULL,
  entity_type VARCHAR(80) NULL,
  entity_id INT UNSIGNED NULL,
  details TEXT NULL,
  ip_address VARCHAR(45) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  INDEX idx_activity_created (created_at),
  INDEX idx_activity_actor (actor_user_id),
  CONSTRAINT fk_activity_actor FOREIGN KEY (actor_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB;
