-- Create users table CREATE TABLE IF NOT EXISTS `users` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `email` VARCHAR(255) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `role` ENUM('student', 'teacher', 'admin') NOT NULL, `full_name` VARCHAR(255) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create leave_requests table CREATE TABLE IF NOT EXISTS `leave_requests` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `student_id` INT NOT NULL, `start_date` DATE NOT NULL, `end_date` DATE NOT NULL, `reason` TEXT, `status` ENUM('pending_teacher', 'pending_admin', 'approved', 'rejected') NOT NULL DEFAULT 'pending_teacher', `teacher_id` INT DEFAULT NULL, `teacher_approved_at` DATETIME DEFAULT NULL, `teacher_rejection_reason` TEXT DEFAULT NULL, `admin_id` INT DEFAULT NULL, `admin_approved_at` DATETIME DEFAULT NULL, `admin_rejection_reason` TEXT DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`student_id`) REFERENCES `users`(`id`) ON DELETE CASCADE, FOREIGN KEY (`teacher_id`) REFERENCES `users`(`id`) ON DELETE SET NULL, FOREIGN KEY (`admin_id`) REFERENCES `users`(`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create leave_request_attachments table CREATE TABLE IF NOT EXISTS `leave_request_attachments` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `leave_request_id` INT NOT NULL, `file_path` VARCHAR(255) NOT NULL, `original_filename` VARCHAR(255) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (`leave_request_id`) REFERENCES `leave_requests`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create password_resets table CREATE TABLE IF NOT EXISTS `password_resets` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `email` VARCHAR(255) NOT NULL, `token` VARCHAR(255) NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;