<?php

/**
 * 文件功能：创建钓鱼事件表
 *
 * 将钓鱼随机事件从硬编码迁移到数据库，支持后台增删改。
 * weight 字段为权重（不是百分比），由所有激活事件的权重之和决定概率。
 *
 * @author   ChatRoom Laravel
 *
 * @version  1.0.0
 */

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * 创建 fishing_events 表
     */
    public function up(): void
    {
        Schema::create('fishing_events', function (Blueprint $table) {
            $table->id();
            $table->string('emoji', 10)->comment('事件表情符号');
            $table->string('name', 100)->comment('事件名称（后台展示用）');
            $table->string('message', 255)->comment('聊天室播报内容');
            $table->integer('exp')->default(0)->comment('经验变化（正为获得，负为扣除）');
            $table->integer('jjb')->default(0)->comment('金币变化（正为获得，负为扣除）');
            $table->unsignedSmallInteger('weight')->default(10)->comment('权重（权重越大概率越高）');
            $table->boolean('is_active')->default(true)->comment('是否启用');
            $table->unsignedTinyInteger('sort')->default(0)->comment('排序（越小越靠前）');
            $table->timestamps();
        });
    }

    /**
     * 回滚：删除 fishing_events 表
     */
    public function down(): void
    {
        Schema::dropIfExists('fishing_events');
    }
};
