GroupHasMember.php 1.06 KB
<?php


namespace App\Models;


use App\Support\Model;
use Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
use Illuminate\Database\Eloquent\SoftDeletes;

class GroupHasMember extends Model
{
    use SoftDeletes;

    protected $table = 'group_has_members';

    protected $guarded = [];

    protected $casts = [
        'group_id'  => 'int',
        'member_id' => 'int'
    ];

    /**
     * @return \Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo
     */
    public function group(): BelongsTo
    {
        return $this->belongsTo(Groups::class, 'group_id');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasOneThrough
     */
    public function master(): HasOneThrough
    {
        return $this->hasOneThrough(User::class, Groups::class, 'id', 'id', 'group_id', 'user_id');
    }

    /**
     * @return \Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo
     */
    public function member(): BelongsTo
    {
        return $this->belongsTo(User::class, 'member_id');
    }
}