. */ namespace App; use GrahamCampbell\Markdown\Facades\Markdown; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; use Mpociot\Teamwork\Traits\UsedByTeams; class Vacancy extends Model { //use UsedByTeams; public $fillable = [ 'permissionGroupName', 'vacancyName', 'vacancyDescription', 'vacancyFullDescription', 'discordRoleID', 'vacancyFormID', 'vacancyCount', 'vacancyStatus', 'vacancySlug', 'team_id', ]; /** * Get the HTML variant of the vacancyFullDescription attribute. * * @param string $value The original value * @return string */ public function getVacancyFullDescriptionAttribute($value) { if (! is_null($value)) { return Markdown::convertToHTML($value); } else { return null; } } public function teams() { return $this->belongsToMany('App\Team', 'team_has_vacancy'); } public function forms() { return $this->belongsTo('App\Form', 'vacancyFormID', 'id'); } public function open() { $this->update([ 'vacancyStatus' => 'OPEN', ]); Log::info('Vacancies: Vacancy '.$this->id.' ('.$this->vacancyName.') opened by '.Auth::user()->name); } public function close() { $this->update([ 'vacancyStatus' => 'CLOSED', ]); Log::warning('Vacancies: Vacancy '.$this->id.' ('.$this->vacancyName.') closed by '.Auth::user()->name); } /** * Check if the Modal is attached to the $checkingTeam Model. * * @param Team $checkingTeam The mdoel you want to check against * @return bool Whether the models are attached */ public function hasTeam(Team $checkingTeam): bool { $myTeams = $this->teams; if (empty($myTeams)) { // no associated teams return false; } foreach ($myTeams as $team) { if ($team->id === $checkingTeam->id) { return true; } } return false; } }