Files
alrahma_sunday_school_api/app/Services/Expenses/ExpenseQueryService.php
T
2026-06-05 01:51:08 -04:00

41 lines
1.0 KiB
PHP

<?php
namespace App\Services\Expenses;
use App\Models\Expense;
class ExpenseQueryService
{
public function listAll(): array
{
return $this->baseQuery()
->orderByDesc('expenses.created_at')
->get()
->map(fn ($row) => $row->toArray())
->all();
}
public function findById(int $id): ?array
{
$row = $this->baseQuery()
->where('expenses.id', $id)
->first();
return $row ? $row->toArray() : null;
}
private function baseQuery()
{
return Expense::query()
->selectRaw('
expenses.*,
u.firstname AS purchaser_firstname,
u.lastname AS purchaser_lastname,
approver.firstname AS approver_firstname,
approver.lastname AS approver_lastname
')
->leftJoin('users as u', 'u.id', '=', 'expenses.purchased_by')
->leftJoin('users as approver', 'approver.id', '=', 'expenses.approved_by');
}
}