Files

35 lines
847 B
PHP

<?php
namespace App\Repositories\InvoiceAttachment;
use App\Models\InvoiceAttachment;
use App\Repositories\BaseRepository;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Storage;
class InvoiceAttachmentRepository extends BaseRepository implements InvoiceAttachmentRepositoryInterface
{
public function getModel()
{
return InvoiceAttachment::class;
}
public function getByInvoice(int $invoiceId): Collection
{
return $this->model->where('invoice_id', $invoiceId)->latest()->get();
}
public function deleteWithFile(int $id): bool
{
$attachment = $this->find($id);
if (!$attachment) {
return false;
}
Storage::disk($attachment->disk)->delete($attachment->path);
$attachment->delete();
return true;
}
}