File: /var/www/html/owlcrm/app/Models/Company.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use App\Models\Files;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class Company extends Model implements HasMedia
{
use InteractsWithMedia;
protected $table = "companies";
protected $with = ['my_state', 'my_country', 'my_city', 'image'];
use HasFactory;
protected $fillable = [
'user_id',
'name',
'description',
'logo',
'address_line_1',
'address_line_2',
'country',
'city',
'state',
'postal_code',
'created_by',
];
public function user()
{
return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function my_state()
{
return $this->belongsTo(States::class, 'state', 'id');
}
public function my_country()
{
return $this->belongsTo(Country::class, 'country', 'id');
}
public function my_city()
{
return $this->belongsTo(City::class, 'city', 'id');
}
// public function logo()
// {
// return $this->belongsTo(Files::class, 'logo', 'id');
// }
// public function image(): HasOne
// {
// return $this->hasOne(Files::class, 'id', 'logo');
// }
public function image()
{
return $this->belongsTo(Files::class, 'logo');
}
public function registerMediaCollections(): void
{
$this->addMediaCollection('logo');
}
}