<?php

namespace Kylin\Excel\Concerns;

/**
 * 数据映射接口
 * 
 * 实现此接口的导入/导出类可以对每行数据进行转换
 * 在导出时，可以将原始数据转换为Excel格式
 * 在导入时，可以将Excel数据转换为目标格式
 */
interface WithMapping
{
    /**
     * 映射行数据
     * 
     * 对每行数据进行转换处理
     * 
     * @param mixed $row 原始行数据
     * @return array 转换后的行数据
     * 
     * @example
     * public function map(mixed $row): array
     * {
     *     return [
     *         $row->name,
     *         $row->email,
     *         $row->created_at->format('Y-m-d'),
     *     ];
     * }
     */
    public function map(mixed $row): array;
}
