getAyahRange static method
Get a range of consecutive ayat from a specific surah.
surahId
The surah number (1-114)
startAyah
Starting ayah number (inclusive)
endAyah
Ending ayah number (inclusive)
Returns AyahRange containing the specified range of ayat.
Throws ArgumentError if parameters are invalid.
Example:
final range = await QuranService.getAyahRange(2, 1, 5); // Al-Baqarah 1-5
print('Reading ${range.range.count} ayat from ${range.surah.englishName}');
Implementation
static Future<AyahRange> getAyahRange(
int surahId, int startAyah, int endAyah) async {
await initialize();
_ensureDataLoaded();
QuranValidators.validateSurahId(surahId);
final surah = _quranData!.surahs.firstWhere(
(s) => s.id == surahId,
orElse: () => throw ArgumentError('Surah $surahId not found'),
);
QuranValidators.validateAyahRange(startAyah, endAyah, surah.numberOfAyahs);
final ayatInRange = surah.ayat
.where((ayah) => ayah.id >= startAyah && ayah.id <= endAyah)
.toList();
return AyahRange(
surah: surah,
range: AyahRangeInfo(
start: startAyah,
end: endAyah,
count: ayatInRange.length,
),
ayat: ayatInRange,
);
}