<?php
namespace App\Scopes;
use App\Models\LmsInstitute;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Schema;
class LmsScope implements Scope
{
public $tables = [
'courses',
'online_quizzes',
'virtual_classes'
];
public function apply(Builder $builder, Model $model)
{
$institute = 1;
if (function_exists('SaasInstitute')) {
try {
$institute = SaasInstitute()->id ?? 1;
} catch (\Exception $e) {
}
}
if (isModuleActive('LmsSaas') && in_array($model->getTable(), $this->tables)) {
if (config('app.short_url') == request()->getHost()) {
$domain = null;
} else {
$domain = str_replace('.' . config('app.short_url'), '', request()->getHost());
}
if ($domain) {
$checkInstitute = LmsInstitute::where('domain', $domain)->first();
if ($checkInstitute) {
$institute = $checkInstitute->id;
}
}
}
if (Schema::hasColumn($model->getTable(), 'lms_id') && !isModuleActive('LmsSaasMD')) {
$builder->where($model->getTable() . '.lms_id', '=', $institute);
}
}
}