void main() { // Criar uma função que retorna o valor total das transações do tipo "income" ou "outcome". // Se o movementType for "income", então a soma deve ser apenas dos valores de transações desse tipo. int getTotalTransactionedValueByType(List transactionList, MovementType movementType) { return 0; //Apenas para evitar erro de compilação. } // Criar uma função que retorna o balanço total da lista de transações. // Por exemplo, se tivermos uma lista com apenas duas transações, a primeira com valor de 100 e do tipo "income" // e a segunda do valor de 50 com tipo "outcome", então o balanço total deve ser de 50. int getTotalBalanceFromTransactions(List transactionList) { return 0; //Apenas para evitar erro de compilação. } // Criar uma função para filtrar a lista de transação a partir de um valor qualquer de dias. // Por exemplo, se o valor de "daysAgo" for 7, então a função deve retornar uma lista somente // com transações dos últimos 7 dias. // Dica: Olhar o construtor ".now()" e o método ".difference(DateTime other)" da class "DateTime" // Link para docs: // - ".difference()": https://api.dart.dev/stable/2.12.2/dart-core/DateTime/difference.html // - ".now()": https://api.dart.dev/stable/2.12.2/dart-core/DateTime/DateTime.now.html List getTransactionsFromDaysAgo(List transactionList, int daysAgo) { return []; //Apenas para evitar erro de compilação. } } enum MovementType { income, //Entrada de valor outcome, //Saida de valor } class Transaction { MovementType movementType; DateTime date; int value; Transaction({ required this.date, required this.movementType, required this.value, }); } final transactionList = [ Transaction( date: DateTime(2021, 3, 21), value: 100, movementType: MovementType.income ), Transaction( date: DateTime(2021, 3, 15), value: 177, movementType: MovementType.income ), Transaction( date: DateTime(2021, 3, 12), value: 30, movementType: MovementType.outcome ), Transaction( date: DateTime(2021, 3, 5), value: 400, movementType: MovementType.outcome ), Transaction( date: DateTime(2021, 2, 27), value: 574, movementType: MovementType.income ), Transaction( date: DateTime(2021, 2, 20), value: 32, movementType: MovementType.income ), Transaction( date: DateTime(2021, 2, 12), value: 3120, movementType: MovementType.outcome ), Transaction( date: DateTime(2021, 2, 5), value: 122, movementType: MovementType.income ), Transaction( date: DateTime(2021, 1, 25), value: 144, movementType: MovementType.income ), Transaction( date: DateTime(2021, 1, 19), value: 324, movementType: MovementType.outcome ), Transaction( date: DateTime(2021, 1, 13), value: 371, movementType: MovementType.income ), Transaction( date: DateTime(2021, 1, 7), value: 2735, movementType: MovementType.income ), Transaction( date: DateTime(2021, 1, 2), value: 2735, movementType: MovementType.outcome ), ];