-- Tạo bảng log để lưu nhật ký hệ thống
CREATE TABLE IF NOT EXISTS `log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `action` varchar(100) NOT NULL COMMENT 'Hành động (LOGIN, LOGOUT, CREATE, UPDATE, DELETE, etc.)',
  `description` text COMMENT 'Mô tả chi tiết hành động',
  `user_id` int(11) DEFAULT NULL COMMENT 'ID của người dùng thực hiện hành động',
  `username` varchar(50) DEFAULT NULL COMMENT 'Tên đăng nhập của người dùng',
  `ip_address` varchar(45) DEFAULT NULL COMMENT 'Địa chỉ IP của người dùng',
  `user_agent` text COMMENT 'User agent của trình duyệt',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Thời gian tạo log',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_username` (`username`),
  KEY `idx_action` (`action`),
  KEY `idx_created_at` (`created_at`),
  CONSTRAINT `fk_log_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Bảng lưu nhật ký hệ thống';

-- Thêm một số log mẫu để test
INSERT INTO `log` (`action`, `description`, `user_id`, `username`, `ip_address`, `created_at`) VALUES
('LOGIN_SUCCESS', 'Đăng nhập thành công', 1, 'admin', '127.0.0.1', NOW() - INTERVAL 1 HOUR),
('CREATE', 'Tạo mới đối tượng ID: 1', 1, 'admin', '127.0.0.1', NOW() - INTERVAL 30 MINUTE),
('UPDATE', 'Cập nhật thông tin đối tượng ID: 1', 1, 'admin', '127.0.0.1', NOW() - INTERVAL 15 MINUTE),
('EXPORT', 'Xuất Excel danh sách đối tượng', 1, 'admin', '127.0.0.1', NOW() - INTERVAL 10 MINUTE),
('LOGOUT', 'Đăng xuất', 1, 'admin', '127.0.0.1', NOW() - INTERVAL 5 MINUTE); 