mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-09-29 12:13:06 -04:00
102 lines
2.7 KiB
PHP
102 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace Modules\WTIJobBoard\Repositories;
|
|
|
|
use Modules\WTIJobBoard\Entities\JobRequestBadge;
|
|
use Modules\WTIJobBoard\Entities\JobRequestCategory;
|
|
use Modules\Staff\Entities\Staff;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use DB;
|
|
|
|
class JobRequestBadgesRepository
|
|
{
|
|
public function all($data)
|
|
{
|
|
$badges = JobRequestBadge::orderByRaw('-`order` DESC')->get();
|
|
return $badges;
|
|
}
|
|
|
|
public function store($request)
|
|
{
|
|
$data = $request->except('_token');
|
|
$data['image'] = $request->file('image')->store('badges','public');
|
|
$data['categories'] = $request->categories != null ? array_map('intval', $request->categories) : null;
|
|
$data['video_types'] = $request->video_types != null ? array_map('intval', $request->video_types) : null;
|
|
|
|
$badge = new JobRequestBadge();
|
|
$badge->fill($data);
|
|
$badge->order = JobRequestBadge::count() + 1;
|
|
$badge->save();
|
|
|
|
return true;
|
|
}
|
|
|
|
public function update($request)
|
|
{
|
|
$data = $request->except('_token');
|
|
$badge = JobRequestBadge::find($data['id']);
|
|
|
|
if ($badge) {
|
|
|
|
if($request->has('image')){
|
|
$data['image'] = $request->file('image')->store('badges','public');
|
|
}
|
|
$data['categories'] = $request->categories != null ? array_map('intval', $request->categories) : null;
|
|
$data['video_types'] = $request->video_types != null ? array_map('intval', $request->video_types) : null;
|
|
|
|
$badge->fill($data);
|
|
$badge->update();
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function setActiveState($data)
|
|
{
|
|
$badge = JobRequestBadge::find($data['id']);
|
|
|
|
if ($badge) {
|
|
$badge->active = $data['active'];
|
|
$badge->update();
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$badge = JobRequestBadge::find($id);
|
|
|
|
if ($badge) {
|
|
|
|
//lets remove first the badge on the category
|
|
JobRequestCategory::where('badge_id', $badge->id)
|
|
->update([
|
|
'badge_id' => null
|
|
]);
|
|
|
|
//lets remove the badge on all staffs
|
|
$staffs = Staff::whereJsonContains('badges', [$badge->id])->get();
|
|
foreach ($staffs as $key => $staff) {
|
|
$badges = $staff->badges;
|
|
if (($key = array_search($badge->id, $badges)) !== false) {
|
|
unset($badges[$key]);
|
|
}
|
|
|
|
$staff->badges = array_values($badges);
|
|
$staff->save();
|
|
}
|
|
|
|
$badge->delete();
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|