81 lines
1.7 KiB
PHP
81 lines
1.7 KiB
PHP
<?php
|
|
namespace App\Repositories;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Laratrust\Traits\LaratrustUserTrait;
|
|
use Yajra\Datatables\Datatables;
|
|
|
|
use App\Team;
|
|
use App\Models\TeamUser;
|
|
|
|
use App\Repositories\Users;
|
|
|
|
class Teams
|
|
{
|
|
use LaratrustUserTrait;
|
|
|
|
public static function getTeamsByUser($user_id = false)
|
|
{
|
|
$user_id = $user_id ? $user_id : Users::getId();
|
|
return TeamUser::byUser($user_id);
|
|
}
|
|
|
|
public static function getUsersByTeam($id)
|
|
{
|
|
return TeamUser::byTeam($id)->get();
|
|
}
|
|
|
|
public static function getUsersIdByTeam($id)
|
|
{
|
|
return self::getUsersByTeam($id)->pluck('user_id');
|
|
}
|
|
|
|
public static function getUsersByTeam2($id)
|
|
{
|
|
return Team::find($id)->users();
|
|
}
|
|
|
|
public static function getOptions()
|
|
{
|
|
return Team::get()->pluck('name', 'id');
|
|
}
|
|
|
|
public static function get($id)
|
|
{
|
|
return Team::find($id);
|
|
}
|
|
|
|
public static function getTable($id)
|
|
{
|
|
$datas = Team::with(['societe'])->withCount(['users']);
|
|
return Datatables::of($datas)->make(true);
|
|
}
|
|
|
|
public static function delete($id)
|
|
{
|
|
Users::destroyByUniqueTeam($id);
|
|
return Team::destroy($id);
|
|
}
|
|
|
|
public static function destroyBySociete($id)
|
|
{
|
|
$teams = Team::bySociete($id)->get();
|
|
foreach ($teams as $team) {
|
|
self::delete($team->id);
|
|
}
|
|
}
|
|
|
|
// ajoute une équipe/service/direction
|
|
public static function create($data)
|
|
{
|
|
return Team::create($data);
|
|
}
|
|
|
|
// met à jour les informations d'une équipe/service/direction
|
|
public static function update($data)
|
|
{
|
|
return Team::find($data['id'])->update($data);
|
|
}
|
|
}
|