<?php
declare (strict_types = 1);

namespace app\admin\validate\v1;

use think\Validate;

class NavigationValidate extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'id'           => 'require|integer',
        'language_id'  => 'require|integer',
        'at_platform'  => 'require|in:pc,mobile',
        'unique_label' => 'require|max:64',
        'name'         => 'require|max:64',
        'desc'         => 'max:255',
        'sort'         => 'integer',
        'status'       => 'in:1,-1',
    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require'           => 'ID不能为空',
        'id.integer'           => 'ID必须是整数',
        'language_id.require'  => '语言ID不能为空',
        'language_id.integer'  => '语言ID必须是整数',
        'at_platform.require'  => '平台不能为空',
        'at_platform.in'       => '平台值必须是pc或mobile',
        'unique_label.require' => '唯一标识不能为空',
        'unique_label.max'     => '唯一标识长度不能超过64个字符',
        'name.require'         => '名称不能为空',
        'name.max'             => '名称长度不能超过64个字符',
        'desc.max'             => '描述长度不能超过255个字符',
        'sort.integer'         => '排序必须是整数',
        'status.in'            => '状态值必须是1或-1',
    ];

    // 场景定义
    protected $scene = [
        'add'  => ['language_id', 'at_platform', 'unique_label', 'name', 'desc', 'sort', 'status'],
        'edit' => ['id', 'at_platform', 'name', 'desc', 'sort', 'status'],
    ];
}
