CompanySettingService.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Services;
  3. use App\Models\CompanySetting;
  4. use Illuminate\Http\UploadedFile;
  5. use Illuminate\Support\Facades\Storage;
  6. class CompanySettingService
  7. {
  8. public function get(): CompanySetting
  9. {
  10. return CompanySetting::firstOrNew(['id' => 1]);
  11. }
  12. public function upsert(array $data): CompanySetting
  13. {
  14. $setting = CompanySetting::firstOrNew(['id' => 1]);
  15. $setting->fill($data);
  16. $setting->save();
  17. return $setting->fresh();
  18. }
  19. public function uploadHeroBackground(UploadedFile $file): CompanySetting
  20. {
  21. $setting = $this->get();
  22. if ($setting->hero_background_path) {
  23. Storage::disk('s3')->delete($setting->hero_background_path);
  24. }
  25. $path = $file->store('company/hero', 's3');
  26. $setting->hero_background_path = $path;
  27. $setting->save();
  28. return $setting->fresh();
  29. }
  30. public function removeHeroBackground(): CompanySetting
  31. {
  32. $setting = $this->get();
  33. if ($setting->hero_background_path) {
  34. Storage::disk('s3')->delete($setting->hero_background_path);
  35. $setting->hero_background_path = null;
  36. $setting->save();
  37. }
  38. return $setting->fresh();
  39. }
  40. }