<?php

namespace Kylin\Excel\Concerns;

/**
 * 数据验证接口
 * 
 * 实现此接口的导入类可以定义数据验证规则
 * 导入时会自动验证每行数据，验证失败会抛出异常
 */
interface WithValidation
{
    /**
     * 获取验证规则
     * 
     * 返回验证规则数组，键为列索引，值为验证规则
     * 
     * @return array 验证规则数组
     * 
     * @example
     * public function rules(): array
     * {
     *     return [
     *         '0' => 'required|string|max:255',  // 第一列
     *         '1' => 'required|email',           // 第二列
     *         '2' => 'nullable|numeric|min:0',   // 第三列
     *     ];
     * }
     */
    public function rules(): array;

    /**
     * 自定义属性名称
     * 
     * 返回属性名称映射，用于错误消息中显示友好的字段名
     * 
     * @return array 属性名称映射
     */
    public function customAttributes(): array;
}
