<?php

namespace Kylin\Excel\Concerns;

use Illuminate\Database\Eloquent\Model;

/**
 * 模型导入接口
 * 
 * 实现此接口的导入类可以将Excel行数据转换为Eloquent模型
 * 每行数据都会调用model方法，返回的模型会自动保存到数据库
 */
interface ToModel
{
    /**
     * 将行数据转换为模型
     * 
     * 接收一行数据，返回对应的Eloquent模型实例
     * 返回null则跳过该行
     * 
     * @param array $row Excel行数据
     * @return Model|null 返回模型实例或null
     * 
     * @example
     * public function model(array $row): ?Model
     * {
     *     return new User([
     *         'name' => $row[0],
     *         'email' => $row[1],
     *     ]);
     * }
     */
    public function model(array $row): ?Model;
}
