<?php

/**
 * 文件功能：为店铺商品类型加入个人装扮（消息气泡、昵称颜色、头像框）。
 *
 * 支持用户在商店购买有期限的个人装扮道具，购买后自动激活并在聊天和用户列表中展示。
 *
 * @author   ChatRoom Laravel
 *
 * @version  1.0.0
 */

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    /**
     * 扩展 shop_items.type ENUM，加入三种装扮类型。
     */
    public function up(): void
    {
        if (DB::getDriverName() === 'mysql') {
            DB::statement("ALTER TABLE `shop_items` MODIFY `type` ENUM('instant','duration','one_time','ring','auto_fishing','sign_repair','msg_bubble','msg_name_color','avatar_frame') NOT NULL COMMENT '道具类型'");
        }
    }

    /**
     * 回滚：移除装扮类型值，将已有装扮商品标记为 one_time。
     */
    public function down(): void
    {
        if (DB::getDriverName() === 'mysql') {
            // 将已有的装扮商品类型回退为 one_time，避免 ENUM 收缩报错
            DB::statement("UPDATE `shop_items` SET `type` = 'one_time' WHERE `type` IN ('msg_bubble','msg_name_color','avatar_frame')");
            DB::statement("ALTER TABLE `shop_items` MODIFY `type` ENUM('instant','duration','one_time','ring','auto_fishing','sign_repair') NOT NULL COMMENT '道具类型'");
        }
    }
};
