'integer', 'height' => 'integer', 'size' => 'float', 'is_unhealthy' => 'bool', ]; public function getFilenameAttribute(): string { return $this->alias_name ?: $this->origin_name; } public function getPathnameAttribute(): string { return "{$this->path}/{$this->name}"; } public function getUrlAttribute(): string { if (! $this->strategy) { return Storage::disk('uploads')->url($this->pathname); } $domain = rtrim($this->strategy->configs->get('domain'), '/'); return $domain.'/'.$this->pathname; } public function getLinksAttribute(): Collection { return collect([ 'url' => $this->url, 'html' => "<img src=\"{$this->url}\" alt=\"{$this->origin_name}\" title=\"{$this->origin_name}\" />", 'bbcode' => "[img]{$this->url}[/img]", 'markdown' => "![{$this->origin_name}]({$this->url})", 'markdown_with_link' => "[![{$this->origin_name}]({$this->url})]({$this->url})", ]); } public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id', 'id'); } public function album(): BelongsTo { return $this->belongsTo(Album::class, 'album_id', 'id'); } public function strategy(): BelongsTo { return $this->belongsTo(Strategy::class, 'strategy_id', 'id'); } }