//package com.test.musichouduan.init;
//
//import cn.dev33.satoken.secure.BCrypt;
//import com.test.musichouduan.entity.*;
//import com.test.musichouduan.repository.*;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.CommandLineRunner;
//import org.springframework.stereotype.Component;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.Arrays;
//import java.util.List;
//
///**
// * 数据初始化器
// */
//@Component
//public class DataInitializer implements CommandLineRunner {
//
//    @Autowired
//    private UserRepository userRepository;
//
//    @Autowired
//    private MusicTypeRepository musicTypeRepository;
//
//    @Autowired
//    private SingerTypeRepository singerTypeRepository;
//
//    @Autowired
//    private PlaylistTypeRepository playlistTypeRepository;
//
//    @Override
//    @Transactional
//    public void run(String... args) throws Exception {
//        // 初始化管理员用户
//        initAdminUser();
//
//        // 初始化音乐类型
//        initMusicTypes();
//
//        // 初始化歌手类型
//        initSingerTypes();
//
//        // 初始化歌单类型
//        initPlaylistTypes();
//    }
//
//    /**
//     * 初始化管理员用户
//     */
//    private void initAdminUser() {
//        if (!userRepository.existsByUsername("admin")) {
//            User admin = new User();
//            admin.setUsername("admin");
//            admin.setPassword(BCrypt.hashpw("123456"));
//            admin.setNickname("管理员");
//            admin.setGender(0);
//            admin.setRole(1);
//            admin.setStatus(1);
//            userRepository.save(admin);
//        }
//    }
//
//    /**
//     * 初始化音乐类型
//     */
//    private void initMusicTypes() {
//        if (musicTypeRepository.count() == 0) {
//            List<String> typeNames = Arrays.asList("流行", "摇滚", "民谣", "电子", "古典", "嘻哈", "爵士", "乡村");
//            for (String name : typeNames) {
//                MusicType type = new MusicType();
//                type.setName(name);
//                type.setDescription(name + "音乐");
//                musicTypeRepository.save(type);
//            }
//        }
//    }
//
//    /**
//     * 初始化歌手类型
//     */
//    private void initSingerTypes() {
//        if (singerTypeRepository.count() == 0) {
//            List<String> typeNames = Arrays.asList("华语男歌手", "华语女歌手", "华语组合", "欧美男歌手", "欧美女歌手", "欧美组合", "日韩男歌手", "日韩女歌手", "日韩组合");
//            for (String name : typeNames) {
//                SingerType type = new SingerType();
//                type.setName(name);
//                type.setDescription(name);
//                singerTypeRepository.save(type);
//            }
//        }
//    }
//
//    /**
//     * 初始化歌单类型
//     */
//    private void initPlaylistTypes() {
//        if (playlistTypeRepository.count() == 0) {
//            List<String> typeNames = Arrays.asList("流行", "摇滚", "民谣", "电子", "古典", "嘻哈", "爵士", "乡村", "轻音乐", "ACG");
//            for (String name : typeNames) {
//                PlaylistType type = new PlaylistType();
//                type.setName(name);
//                type.setDescription(name + "歌单");
//                playlistTypeRepository.save(type);
//            }
//        }
//    }
//}
