<?php
declare (strict_types = 1);

namespace app\validate;

use think\Validate;

/**
 * 游戏验证器
 */
class GameValidate extends Validate
{
    /**
     * 定义验证规则
     */
    protected $rule = [
        'id' => 'require|integer|gt:0',
        'rtp' => 'integer|between:0,100',
        'rtp_type' => 'integer|in:0,1,2',
        'free_game_status' => 'integer|in:0,1',
        'bet_max_level' => 'integer|gt:0',
        'terminal_spin' => 'integer|in:0,1',
        'max_multiple_count' => 'integer|gt:0',
        'deposit_list' => 'array',
        'default_deposit' => 'float|gt:0',
        'default_deposit_level' => 'integer|gt:0',
        'min_deposit' => 'float|gt:0',
    ];
    
    /**
     * 定义错误信息
     */
    protected $message = [
        'id.require' => '游戏ID不能为空',
        'id.integer' => '游戏ID必须是整数',
        'id.gt' => '游戏ID必须大于0',
        'rtp.float' => 'RTP必须是整数',
        'rtp.between' => 'RTP必须在0-100之间',
        'rtp_type.integer' => 'RTP类型必须是整数',
        'rtp_type.in' => 'RTP类型值无效',
        'free_game_status.integer' => '免费游戏状态必须是整数',
        'free_game_status.in' => '免费游戏状态值无效',
        'bet_max_level.integer' => '最大下注级别必须是整数',
        'bet_max_level.gt' => '最大下注级别必须大于0',
        'terminal_spin.integer' => '止损止赢状态必须是整数',
        'terminal_spin.in' => '止损止赢状态值无效',
        'max_multiple_count.integer' => '最高倍数必须是整数',
        'max_multiple_count.gt' => '最高倍数必须大于0',
        'deposit_list.array' => '押注列表必须是数组',
        'default_deposit.float' => '默认押注必须是数字',
        'default_deposit.gt' => '默认押注必须大于0',
        'default_deposit_level.integer' => '默认押注级别必须是整数',
        'default_deposit_level.gt' => '默认押注级别必须大于0',
        'min_deposit.float' => '最小押注必须是数字',
        'min_deposit.gt' => '最小押注必须大于0',
    ];
}