mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-03 22:13:18 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Crater\Models;
 | 
						|
 | 
						|
use Crater\Models\Address;
 | 
						|
use Illuminate\Database\Eloquent\Model;
 | 
						|
use Crater\Models\User;
 | 
						|
use Crater\Models\CompanySetting;
 | 
						|
use Spatie\MediaLibrary\HasMedia;
 | 
						|
use Spatie\MediaLibrary\InteractsWithMedia;
 | 
						|
use Illuminate\Database\Eloquent\Factories\HasFactory;
 | 
						|
 | 
						|
class Company extends Model implements HasMedia
 | 
						|
{
 | 
						|
    use InteractsWithMedia;
 | 
						|
 | 
						|
    use HasFactory;
 | 
						|
 | 
						|
    protected $fillable = ['name', 'logo', 'unique_hash'];
 | 
						|
 | 
						|
    protected $appends = ['logo', 'logo_path'];
 | 
						|
 | 
						|
    public function getLogoPathAttribute()
 | 
						|
    {
 | 
						|
        $logo = $this->getMedia('logo')->first();
 | 
						|
 | 
						|
        $isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
 | 
						|
 | 
						|
        if ($logo) {
 | 
						|
            if ($isSystem) {
 | 
						|
                return $logo->getPath();
 | 
						|
            } else {
 | 
						|
                return $logo->getFullUrl();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
 | 
						|
    public function getLogoAttribute()
 | 
						|
    {
 | 
						|
        $logo = $this->getMedia('logo')->first();
 | 
						|
 | 
						|
        if ($logo) {
 | 
						|
            return $logo->getFullUrl();
 | 
						|
        }
 | 
						|
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
 | 
						|
    public function user()
 | 
						|
    {
 | 
						|
        return $this->hasOne(User::class);
 | 
						|
    }
 | 
						|
 | 
						|
    public function settings()
 | 
						|
    {
 | 
						|
        return $this->hasMany(CompanySetting::class);
 | 
						|
    }
 | 
						|
 | 
						|
    public function address()
 | 
						|
    {
 | 
						|
        return $this->hasOne(Address::class);
 | 
						|
    }
 | 
						|
}
 |