<?php

namespace App\Services\Finance;

use Illuminate\Support\Facades\DB;

class FinancialSchoolYearService
{
    public function listYears(?string $fallbackYear = null): array
    {
        $years = DB::table('invoices')
            ->select('school_year')
            ->whereNotNull('school_year')
            ->distinct()
            ->orderBy('school_year', 'DESC')
            ->pluck('school_year')
            ->map(static fn ($val) => (string) $val)
            ->filter(static fn ($val) => $val !== '')
            ->values()
            ->all();

        if (empty($years) && !empty($fallbackYear)) {
            $years[] = (string) $fallbackYear;
        }

        return $years;
    }
}
