Repository.stub 918 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\{{modelName}};
  4. use App\DTO\{{modelName}}DTO;
  5. use Illuminate\Database\Eloquent\Collection;
  6. class {{modelName}}Repository implements {{modelName}}RepositoryInterface
  7. {
  8. public function __construct(
  9. protected {{modelName}} $model
  10. ){
  11. }
  12. public function all(): Collection
  13. {
  14. return $this->model->all();
  15. }
  16. public function find(int $id): ?{{modelName}}
  17. {
  18. return $this->model->find($id);
  19. }
  20. public function create({{modelName}}DTO $dto): {{modelName}}
  21. {
  22. return $this->model->create($dto->toArray());
  23. }
  24. public function update(int $id, {{modelName}}DTO $dto): {{modelName}}
  25. {
  26. $record = $this->find($id);
  27. $record->update($dto->toArray());
  28. return $record;
  29. }
  30. public function delete(int $id): bool
  31. {
  32. return $this->model->destroy($id) > 0;
  33. }
  34. }