UserService.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 me(): ?User
  10. {
  11. return Auth::user();
  12. }
  13. public function getAll(): Collection
  14. {
  15. return User::query()->orderBy("created_at", "desc")->get();
  16. }
  17. public function findById(int $id): ?User
  18. {
  19. return User::find($id);
  20. }
  21. public function create(array $data): User
  22. {
  23. return User::create($data);
  24. }
  25. public function update(int $id, array $data): ?User
  26. {
  27. $model = $this->findById($id);
  28. if (!$model) {
  29. return null;
  30. }
  31. $model->update($data);
  32. return $model->fresh();
  33. }
  34. public function delete(int $id): bool
  35. {
  36. $model = $this->findById($id);
  37. if (!$model) {
  38. return false;
  39. }
  40. return $model->delete();
  41. }
  42. public function getUserTypes(): array
  43. {
  44. return UserTypeEnum::toArray();
  45. }
  46. }