UnitContractService.php 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Services;
  3. use App\Models\UnitContract;
  4. use Illuminate\Database\Eloquent\Collection;
  5. use Illuminate\Support\Facades\Storage;
  6. class UnitContractService
  7. {
  8. public function getByUnitId(int $unitId): Collection
  9. {
  10. return UnitContract::where('unit_id', $unitId)
  11. ->orderBy('created_at', 'desc')
  12. ->get();
  13. }
  14. public function create(array $data): UnitContract
  15. {
  16. $file = $data['file'];
  17. $name = !empty($data['name']) ? $data['name'] : $file->getClientOriginalName();
  18. $fileUrl = $file->store('unit-contracts');
  19. return UnitContract::create([
  20. 'unit_id' => $data['unit_id'],
  21. 'name' => $name,
  22. 'file_url' => $fileUrl,
  23. ]);
  24. }
  25. public function delete(int $id): bool
  26. {
  27. $model = UnitContract::find($id);
  28. if (!$model) {
  29. return false;
  30. }
  31. Storage::delete($model->file_url);
  32. return $model->delete();
  33. }
  34. }