<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Services\LotterySettings;

/**
 * 【配置中心】示例键；后续由运营后台维护同表即可。
 */
final class LotterySettingsSeeder extends Seeder
{
    public function run(): void
    {
        LotterySettings::put(
            'wallet.transfer_in_enabled',
            true,
            'wallet',
            '是否允许玩家端发起转入（主站对接前可关）',
        );

        LotterySettings::put(
            'wallet.transfer_out_enabled',
            true,
            'wallet',
            '是否允许玩家端发起转出',
        );

        LotterySettings::put(
            'wallet.transfer_in_min_minor',
            100,
            'wallet',
            '转入单笔最小金额（最小货币单位）',
        );

        LotterySettings::put(
            'wallet.transfer_in_max_minor',
            9_999_999_999_999_999,
            'wallet',
            '转入单笔最大金额（最小货币单位）',
        );

        LotterySettings::put(
            'wallet.transfer_out_min_minor',
            100,
            'wallet',
            '转出单笔最小金额',
        );

        LotterySettings::put(
            'wallet.transfer_out_max_minor',
            9_999_999_999_999_999,
            'wallet',
            '转出单笔最大金额',
        );

        LotterySettings::put(
            'app.display_name_for_client',
            'Lottery',
            'general',
            '客户端展示用短名称（示例）',
        );

        LotterySettings::put(
            'draw.require_manual_review',
            false,
            'draw',
            'RNG 开奖后是否必须进入人工审核；false 时系统直接发布结果',
        );

        LotterySettings::put(
            'draw.cooldown_minutes',
            15,
            'draw',
            '开奖结果发布后的冷静期分钟数；0 表示直接进入结算态',
        );

        LotterySettings::put(
            'settlement.auto_run_on_tick',
            true,
            'settlement',
            '是否在 draw tick 中自动对 `settling` 期号跑结算；false 时仅能通过后台 POST settlement/run 触发',
        );

        LotterySettings::put(
            'settlement.auto_approve_on_tick',
            true,
            'settlement',
            '冷静期结束后自动结算批次是否由 tick 自动审核通过；false 时需人工审核',
        );

        LotterySettings::put(
            'settlement.auto_payout_on_tick',
            true,
            'settlement',
            '结算批次审核通过后是否由 tick 自动派彩入账；false 时需人工执行 payout',
        );

        LotterySettings::put(
            'settlement.apply_rebate_to_payout',
            false,
            'settlement',
            '为 true 时结算派彩在毛赢基础上再乘 (1 - rebate_rate_snapshot)；默认 false（实扣已含回水）',
        );

        LotterySettings::put(
            'frontend.play_rules_html',
            '',
            'frontend',
            '玩家端玩法规则页面显示的自定义 HTML（遗留键，保存时与中文键同步）',
        );

        LotterySettings::put(
            'frontend.play_rules_html_zh',
            '',
            'frontend',
            '玩家端玩法规则页 HTML（中文）',
        );

        LotterySettings::put(
            'frontend.play_rules_html_en',
            '',
            'frontend',
            '玩家端玩法规则页 HTML（English）',
        );

        LotterySettings::put(
            'frontend.play_rules_html_ne',
            '',
            'frontend',
            '玩家端玩法规则页 HTML（नेपाली）',
        );
    }
}
