<?php

namespace Kylin\Excel\Facades;

use Illuminate\Support\Facades\Facade;
use Kylin\Excel\Services\ExcelService;

/**
 * Excel门面类
 * 
 * 提供对ExcelService的静态访问接口
 * 通过Laravel门面模式，可以使用Excel::xxx()的方式调用服务方法
 * 
 * @method static void download(object $export, string $fileName, ?string $writerType = null) 下载Excel文件
 * @method static bool store(object $export, string $filePath, ?string $disk = null, ?string $writerType = null) 存储Excel文件
 * @method static string raw(object $export, ?string $writerType = null) 获取Excel原始内容
 * @method static void import(object $import, string $filePath, ?string $disk = null, ?string $readerType = null) 导入Excel文件
 * @method static \Illuminate\Support\Collection toCollection(object $import, string $filePath, ?string $disk = null, ?string $readerType = null) 将Excel数据读取为集合
 * @method static array toArray(object $import, string $filePath, ?string $disk = null, ?string $readerType = null) 将Excel数据读取为数组
 * @method static void queue(object $export, string $filePath, ?string $disk = null) 队列导出Excel
 * @method static void chain(array $chain) 链式执行多个任务
 * @method static \Vtiful\Kernel\Excel createWriter(string $filePath) 创建Excel写入器
 * @method static \Vtiful\Kernel\Excel createReader(string $filePath) 创建Excel读取器
 *
 * @see \Kylin\Excel\Services\ExcelService
 */
class Excel extends Facade
{
    /**
     * 获取门面访问器
     * 
     * 返回服务容器中绑定的服务标识
     * 
     * @return string 服务标识
     */
    protected static function getFacadeAccessor(): string
    {
        return ExcelService::class;
    }
}
