<?php

/**
 * 文件功能：赛马竞猜局次表迁移
 *
 * 记录每场赛马比赛的状态、参赛马匹、赢家结果
 * 以及下注统计等信息。
 *
 * @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
{
    /**
     * 创建 horse_races 表。
     */
    public function up(): void
    {
        Schema::create('horse_races', function (Blueprint $table) {
            $table->id();

            // 场次状态：betting（押注中）| running（跑马中）| settled（已结算）
            $table->string('status', 20)->default('betting')->index();

            // 押注时间窗口
            $table->timestamp('bet_opens_at')->nullable();
            $table->timestamp('bet_closes_at')->nullable();

            // 跑马开始和结束时间
            $table->timestamp('race_starts_at')->nullable();
            $table->timestamp('race_ends_at')->nullable();

            // 参赛马匹（JSON 数组：[{id, name, emoji, odds}]）
            $table->json('horses')->nullable();

            // 获胜马匹 ID（1~N）
            $table->tinyInteger('winner_horse_id')->nullable();

            // 本场统计
            $table->unsignedBigInteger('total_bets')->default(0);  // 总参与人次
            $table->unsignedBigInteger('total_pool')->default(0);  // 注池总金额

            $table->timestamp('settled_at')->nullable();

            $table->timestamps();
        });
    }

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