getAllMosquitoSpecies method

Future<List<MosquitoSpecies>> getAllMosquitoSpecies(
  1. String languageCode
)

Retrieves all mosquito species for a specific language.

Returns a list of mosquito species with their localized information and associated diseases for the specified language.

@param languageCode The language code (e.g., 'en', 'es') @return A Future that completes with a list of MosquitoSpecies

Implementation

Future<List<MosquitoSpecies>> getAllMosquitoSpecies(String languageCode) async {
  final db = await database;
  final List<Map<String, dynamic>> maps = await db.rawQuery('''
    SELECT
      s.id, s.name, s.image_url,
      t.common_name, t.description, t.habitat, t.distribution
    FROM mosquito_species s
    LEFT JOIN mosquito_species_translations t ON s.id = t.species_id
    WHERE t.language_code = ?
  ''', [languageCode]);

  return Future.wait(maps.map((map) async {
    final diseaseNames = await _getDiseaseNamesForMosquito(db, map['id'], languageCode);
    return MosquitoSpecies(
      id: map['id'],
      name: map['name'],
      commonName: map['common_name'],
      description: map['description'],
      habitat: map['habitat'],
      distribution: map['distribution'],
      imageUrl: map['image_url'],
      diseases: diseaseNames,
    );
  }).toList());
}