UserService.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Services;
  3. use App\Enums\UserTypeEnum;
  4. use App\Models\User;
  5. use Illuminate\Database\Eloquent\Collection;
  6. use Illuminate\Support\Facades\Auth;
  7. class UserService
  8. {
  9. public function authUser(): ?User
  10. {
  11. $user = Auth::user();
  12. return $user;
  13. }
  14. public function getAll(): Collection
  15. {
  16. return User::orderBy("created_at", "desc")->get();
  17. }
  18. public function findById(int $id): ?User
  19. {
  20. return User::find($id);
  21. }
  22. public function create(array $data): User
  23. {
  24. return User::create($data);
  25. }
  26. public function update(int $id, array $data): ?User
  27. {
  28. $model = $this->findById($id);
  29. if (!$model) {
  30. return null;
  31. }
  32. $model->update($data);
  33. return $model->fresh();
  34. }
  35. public function delete(int $id): bool
  36. {
  37. $model = $this->findById($id);
  38. if (!$model) {
  39. return false;
  40. }
  41. return $model->delete();
  42. }
  43. public function getUserTypes(): array
  44. {
  45. return UserTypeEnum::toArray();
  46. }
  47. }