import 'dart:io';
import 'package:dart_assincronismo/models/account.dart';
import 'package:dart_assincronismo/services/account_service.dart';
import 'package:uuid/uuid.dart';
class AccountScreen {
final AccountService _accountService = AccountService();
void initializeStream(){
_accountService.streamInfos.listen((event) => print(event));
}
void runChatBot() async{
print('Bom dia! Eu sou o Lewis, assistente do Banco d\'Ouro!');
print('Que bom te ter aqui com a gente.\n');
bool isRunning = true;
while (isRunning) {
print('Como eu posso te ajudar? (digite um número desejado)');
print('1 - Ver todas as contas.');
print('2 - Adicionar nova conta.');
print('3 - sair\n');
String? input = stdin.readLineSync();
if (input != null) {
switch (input) {
case '1': {
await _getAllAccounts();
break;
}
case '2': {
print('Digite o nome e sobrenome:');
String? nameComplete = stdin.readLineSync();
print('Digite o valor inicial da conta:');
String? balance = stdin.readLineSync();
if (nameComplete != null && balance != null && double.tryParse(balance) != null) {
double doubleBalance = double.parse(balance);
await _addExampleAccount(nameComplete, doubleBalance);
} else {
print('Erro! Digite os dados corretamente');
}
break;
}
case '3': {
isRunning = false;
print('Te vejo na próxima. ');
break;
}
default: {
print('Não entendi. Tente novamente');
}
}
}
}
}
Future<void> _getAllAccounts() async{
List<Account> listAccount = await _accountService.getAll();
print(listAccount);
}
Future<void> _addExampleAccount(String name, double balance) async {
List<String> listName = name.split(' ');
//Gerando o ID
Uuid uuid = Uuid();
String v1 = uuid.v1();
Account exemple = Account(
id: v1,
name: listName.first,
lastName: listName.last,
balance: balance
);
await _accountService.addAccount(exemple);
}
}