convertOrderBy method
Implementation
Map<String, dynamic> convertOrderBy(Map<String, dynamic> input) {
// Estrai columnId e mode
if (input['columnId'] == null || input['columnId'].toString().isEmpty) {
return {};
}
String columnId = input['columnId']!;
String mode = input['mode'] == 'DESC' ? 'desc' : 'asc';
// Dividi columnId in base ai ':'
List<String> parts = columnId.split(':');
Map<String, dynamic> orderBy = {};
if (parts.length == 1) {
// Campo diretto del modello
orderBy[columnId] = mode;
} else {
// Nidificazione delle relazioni
Map<String, dynamic> currentLevel = orderBy;
for (int i = 0; i < parts.length; i++) {
if (i == parts.length - 1) {
// Ultimo elemento, aggiungi mode
currentLevel[parts[i]] = mode;
} else {
// Crea un nuovo livello di nidificazione
currentLevel[parts[i]] = <String, dynamic>{};
currentLevel = currentLevel[parts[i]] as Map<String, dynamic>;
}
}
}
return orderBy;
}