<?php

declare(strict_types=1);

namespace app\common\library\upload;

/**
 * 上传驱动抽象类（Webman 迁移版，支持 WebmanUploadedFile）
 */
abstract class Driver
{
    protected array $options = [];

    /**
     * 保存文件
     * @param WebmanUploadedFile $file
     * @param string $saveName
     */
    abstract public function save(WebmanUploadedFile $file, string $saveName): bool;

    /**
     * 删除文件
     */
    abstract public function delete(string $saveName): bool;

    /**
     * 获取资源 URL 地址
     */
    abstract public function url(string $saveName, string|bool $domain = true, string $default = ''): string;

    /**
     * 文件是否存在
     */
    abstract public function exists(string $saveName): bool;
}
