Files
lucent-laravel/src/Channel/Channel.php
T
2026-05-07 21:18:50 +03:00

51 lines
1.3 KiB
PHP

<?php
namespace Lucent\Channel;
use Lucent\Channel\Data\UserCommand;
use Lucent\Primitive\Collection;
use Lucent\Data\Schema;
use Lucent\Data\ChannelAuth;
final class Channel
{
public string $lucentUrl;
public string $filesUrl;
public string $previewTargetUrl;
/**
* @param Collection<Schema> $schemas
* @param Collection<UserCommand> $commands
*/
function __construct(
public string $name,
public ChannelAuth $auth,
public string $url,
public string $previewTarget,
public Collection $commands,
public Collection $schemas,
public array $imageFilters,
public array $roles,
) {
$this->lucentUrl = $url . "/lucent";
$this->filesUrl = $this->makeFilesUrl();
$this->previewTargetUrl = $url . "/" . $previewTarget;
}
private function makeFilesUrl(): string
{
$lucentDisk = config("lucent.public_disk");
return match (config("filesystems.disks.$lucentDisk.driver")) {
"s3" => config("filesystems.disks.$lucentDisk.endpoint") .
"/lucent" .
config("filesystems.disks.$lucentDisk.bucket"),
"local" => $this->url .
"/storage/lucent" .
config("filesystems.disks.$lucentDisk.endpoint"),
default => "",
};
}
}