FileService.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Services\File;
  3. use App\Libraries\BIM\BIMDriverEnum;
  4. use App\Models\Enums\ActionObjectType;
  5. use App\Models\Enums\BimFileConvertStatus;
  6. use App\Models\Enums\FileObjectType;
  7. use App\Models\Enums\ObjectAction;
  8. use App\Models\File;
  9. use App\Repositories\ActionRepository;
  10. use App\Repositories\CustomFieldRepository;
  11. use App\Services\History\ModelChangeDetector;
  12. use Illuminate\Support\Facades\Auth;
  13. class FileService
  14. {
  15. private CustomFieldRepository $customFieldRepository;
  16. public function __construct(CustomFieldRepository $customFieldRepository)
  17. {
  18. $this->customFieldRepository = $customFieldRepository;
  19. }
  20. public function update(string $id, array $updatedData): void
  21. {
  22. $file = File::query()->findOrFail($id);
  23. $updatedData['updated_by'] = Auth::user()->id;
  24. $file->fill($updatedData);
  25. $changes = ModelChangeDetector::detector(ActionObjectType::CONTAINER_FILE, $file);
  26. ActionRepository::create($id, ActionObjectType::CONTAINER_FILE, ObjectAction::EDITED_FILE, null, null, [], $changes);
  27. $file->save();
  28. }
  29. }