-- ============================================================================
-- RESET BASE DE DONNÉES ROLLERLOGIC — Suppression des données joueurs
-- ============================================================================
-- Ce script supprime TOUTES les données joueurs tout en préservant
-- les données persistantes du jeu (catalogue niveaux, avatars, packs, config).
--
-- USAGE :
--   mysql -h gb9434-001.eu.clouddb.ovh.net -P 35670 -u <user> -p RollerLogic < reset_player_data.sql
--
-- ATTENTION : Cette opération est IRRÉVERSIBLE !
-- ============================================================================

-- Désactiver les vérifications FK pour pouvoir supprimer dans n'importe quel ordre

-- ────────────────────────────────────────────────────────────────────
-- 1. Tables d'historique / transactions financières
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `wallet_history`;
DELETE FROM `user_cash_pack_purchases`;
DELETE FROM `payment_transactions`;

-- ────────────────────────────────────────────────────────────────────
-- 2. Tables de bonus / récompenses joueur
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `daily_bonus`;
DELETE FROM `arcade_bonus`;
DELETE FROM `ad_rewards`;

-- ────────────────────────────────────────────────────────────────────
-- 3. Tables d'achats / possessions joueur
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `user_ball_skins`;
DELETE FROM `user_ball_skin_packs`;
DELETE FROM `user_avatar_packs`;
DELETE FROM `user_challenge_pack`;
DELETE FROM `user_weekly_avatars`;
DELETE FROM `user_avatars`;

-- ────────────────────────────────────────────────────────────────────
-- 4. Tables de progression / stats joueur
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `weekly_progress`;
DELETE FROM `daily_progress`;
DELETE FROM `leaderboard_entries`;
DELETE FROM `recent_runs`;
DELETE FROM `level_stats`;
DELETE FROM `user_stats`;
DELETE FROM `arcade_stats`;
DELETE FROM `infinite_stats`;
DELETE FROM `progress`;

-- ────────────────────────────────────────────────────────────────────
-- 5. Tables préférences / paramètres joueur
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `user_settings`;

-- ────────────────────────────────────────────────────────────────────
-- 6. Tables authentification
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `refresh_tokens`;
DELETE FROM `audit_log`;
DELETE FROM `wallets`;

-- ────────────────────────────────────────────────────────────────────
-- 7. Table principale users (DERNIER — toutes les FK sont déjà nettoyées)
-- ────────────────────────────────────────────────────────────────────
DELETE FROM `users`;

-- Réactiver les vérifications FK

-- ────────────────────────────────────────────────────────────────────
-- 8. Reset des AUTO_INCREMENT pour repartir propre
-- ────────────────────────────────────────────────────────────────────
ALTER TABLE `users` AUTO_INCREMENT = 1;
ALTER TABLE `refresh_tokens` AUTO_INCREMENT = 1;
ALTER TABLE `audit_log` AUTO_INCREMENT = 1;
ALTER TABLE `recent_runs` AUTO_INCREMENT = 1;
ALTER TABLE `leaderboard_entries` AUTO_INCREMENT = 1;
ALTER TABLE `payment_transactions` AUTO_INCREMENT = 1;
ALTER TABLE `user_cash_pack_purchases` AUTO_INCREMENT = 1;
ALTER TABLE `wallet_history` AUTO_INCREMENT = 1;

-- ============================================================================
-- TABLES PRÉSERVÉES (données persistantes du jeu) :
-- ============================================================================
--   ✓ app_config          — Configuration globale (maintenance, theme, etc.)
--   ✓ levels_catalog      — Catalogue de niveaux pré-générés
--   ✓ avatars             — Définitions d'avatars (base/recompense/achat)
--   ✓ avatar_packs        — Catalogue des packs d'avatars premium
--   ✓ ball_skin_packs     — Catalogue des packs de skins de billes
--   ✓ daily_challenges    — Planning des défis quotidiens
--   ✓ weekly_rewards      — Récompenses hebdomadaires programmées
--   ✓ used_weekly_avatars — Suivi des avatars déjà utilisés en hebdo
--   ✓ pack_avatars        — Association avatar ↔ pack (si existante)
-- ============================================================================

SELECT 'RESET TERMINÉ — Toutes les données joueurs ont été supprimées.' AS result;
SELECT 'Tables préservées : app_config, levels_catalog, avatars, avatar_packs, ball_skin_packs, daily_challenges, weekly_rewards, used_weekly_avatars' AS preserved;
