getDiseasesByVector method
Retrieves diseases associated with a specific mosquito species.
Returns all diseases that can be transmitted by the specified mosquito species for the given language.
@param speciesName The scientific name of the mosquito species @param languageCode The language code (e.g., 'en', 'es') @return A Future that completes with a list of Disease objects
Implementation
Future<List<Disease>> getDiseasesByVector(String speciesName, String languageCode) async {
final db = await database;
final List<Map<String, dynamic>> mosquitoMaps = await db.query('mosquito_species', where: 'name = ?', whereArgs: [speciesName]);
if (mosquitoMaps.isEmpty) return [];
final String mosquitoId = mosquitoMaps.first['id'];
final List<Map<String, dynamic>> relationMaps = await db.query('mosquito_disease_relation', where: 'mosquito_id = ?', whereArgs: [mosquitoId]);
final List<String> diseaseIds = relationMaps.map((r) => r['disease_id'] as String).toList();
final List<Disease> diseases = [];
for (var diseaseId in diseaseIds) {
final disease = await getDiseaseById(diseaseId, languageCode);
if (disease != null) {
diseases.add(disease);
}
}
return diseases;
}