<?php

/**
 * 文件功能：神秘占卜记录表迁移
 *
 * 记录每次用户占卜的签文类型、签文内容、
 * 当日 buff 效果及消耗金币记录。
 *
 * @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
{
    /**
     * 创建 fortune_logs 表。
     */
    public function up(): void
    {
        Schema::create('fortune_logs', function (Blueprint $table) {
            $table->id();

            // 占卜用户
            $table->foreignId('user_id')->constrained('users')->cascadeOnDelete();

            // 签文类型：jackpot（上上签）| good（上签）| normal（中签）| bad（下签）| curse（大凶签）
            $table->string('grade', 20);

            // 签文内容（预设文字）
            $table->string('text', 500);

            // 当日加成描述（例如："今日经验+20%"）
            $table->string('buff_desc', 200)->nullable();

            // 是否为免费次数（false=付费额外次数）
            $table->boolean('is_free')->default(true);

            // 占卜消耗金币（免费次数为 0）
            $table->unsignedInteger('cost')->default(0);

            // 占卜日期（用于计算每日首次）
            $table->date('fortune_date');

            $table->timestamps();

            // 加速每日次数查询
            $table->index(['user_id', 'fortune_date']);
        });
    }

    /**
     * 回滚。
     */
    public function down(): void
    {
        Schema::dropIfExists('fortune_logs');
    }
};
