SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;

-- One-time recovery snapshot. Re-running this migration never overwrites it.
CREATE TABLE IF NOT EXISTS games_genre_categories_backup_20260814 AS
SELECT id, genre, categories
FROM games;

START TRANSACTION;

CREATE TEMPORARY TABLE category_translation_vi (
    source_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci PRIMARY KEY,
    target_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
);

INSERT INTO category_translation_vi (source_name, target_name) VALUES
('.Io', 'Game .IO'),
('Ball Games', 'Trò chơi bóng'),
('Basketball Games', 'Bóng rổ'),
('Battle Royale Games', 'Sinh tồn đối kháng'),
('Beauty Games', 'Làm đẹp'),
('Bike Games', 'Xe máy'),
('Block Games', 'Xếp khối'),
('Board Games', 'Cờ bàn'),
('Boat Games', 'Thuyền'),
('Bowling Games', 'Bowling'),
('Brain Games', 'Trí tuệ'),
('Brainrot Games', 'Brainrot'),
('Bubble Shooter Games', 'Bắn bóng'),
('Car Games', 'Ô tô'),
('Card Games', 'Bài'),
('Cat Games', 'Mèo'),
('Clicker Games', 'Nhấp chuột'),
('Color Games', 'Màu sắc'),
('Construction Games', 'Xây dựng'),
('Cooking Games', 'Nấu ăn'),
('Decoration Games', 'Trang trí'),
('Difficult Games', 'Độ khó cao'),
('Dinosaur Games', 'Khủng long'),
('Doctor Games', 'Bác sĩ'),
('Drawing Games', 'Vẽ'),
('Dress Up Games', 'Thay đồ'),
('Driving Games', 'Lái xe'),
('Easy Games', 'Dễ chơi'),
('Educational Games', 'Giáo dục'),
('Escape Games', 'Thoát hiểm'),
('Farm Games', 'Nông trại'),
('Fashion Games', 'Thời trang'),
('Fighting Games', 'Đối kháng'),
('Fishing Games', 'Câu cá'),
('Flash Games', 'Flash'),
('Food Games', 'Ẩm thực'),
('Football Games', 'Bóng bầu dục'),
('Games for Girls', 'Dành cho bạn gái'),
('Golf Games', 'Golf'),
('Gun Games', 'Súng'),
('Hidden Object Games', 'Tìm đồ vật'),
('Horror Games', 'Kinh dị'),
('Idle Games', 'Nhàn rỗi'),
('Madbox', 'Madbox'),
('Match 3 Games', 'Ghép 3'),
('Matching Games', 'Ghép cặp'),
('Merge Games', 'Hợp nhất'),
('Monkey Games', 'Khỉ'),
('Monster Games', 'Quái vật'),
('Multiplayer Games', 'Nhiều người chơi'),
('Music Games', 'Âm nhạc'),
('New Games', 'Game mới'),
('Nitrome Games', 'Nitrome'),
('Number Games', 'Con số'),
('Platform Games', 'Đi cảnh'),
('Pool Games', 'Bi-a'),
('Puzzle Games', 'Giải đố'),
('Quiz Games', 'Đố vui'),
('Racing Games', 'Đua xe'),
('Restaurant Games', 'Nhà hàng'),
('Retro Games', 'Hoài cổ'),
('Roblox Games', 'Roblox'),
('Running Games', 'Chạy'),
('Shooting Games', 'Bắn súng'),
('Simulation Games', 'Mô phỏng'),
('Skill Games', 'Kỹ năng'),
('Slime Games', 'Slime'),
('Snake Games', 'Rắn săn mồi'),
('Soccer Games', 'Bóng đá'),
('Sports Games', 'Thể thao'),
('Stickman Games', 'Người que'),
('Strategy Games', 'Chiến thuật'),
('Survival Games', 'Sinh tồn'),
('Tank Games', 'Xe tăng'),
('Tower Defense Games', 'Thủ thành'),
('Tycoon Games', 'Kinh doanh'),
('Typing Games', 'Gõ phím'),
('War Games', 'Chiến tranh'),
('Watermelon Games', 'Dưa hấu'),
('Word Games', 'Từ vựng'),
('Wrestling Games', 'Đấu vật'),
('Zombie Games', 'Xác sống');

UPDATE games AS g
JOIN category_translation_vi AS t
  ON g.genre COLLATE utf8mb4_unicode_ci = t.source_name
SET g.genre = t.target_name;

UPDATE games AS g
JOIN category_translation_vi AS t
  ON g.categories COLLATE utf8mb4_unicode_ci = t.source_name
SET g.categories = t.target_name;

COMMIT;

SELECT genre, COUNT(*) AS game_count
FROM games
GROUP BY genre
ORDER BY genre;
