package ufrn.imd.service.impl;

import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import ufrn.imd.domain.Account;
import ufrn.imd.domain.Client;
import ufrn.imd.repository.Repository;
import ufrn.imd.service.Service;

import java.rmi.RemoteException;
import java.util.Optional;

@Log
@RequiredArgsConstructor
public class BalanceServiceImpl implements Service {


    private final Repository<Client> clientRepository;

    public void balance(Optional<Client> clientOptional) throws RemoteException {
        Client user = clientOptional
                .orElseThrow(() -> new RuntimeException("NULL USER"));
        Client client = clientRepository.find(user.getId())
                .orElseThrow(() -> new RuntimeException("Invalid user!"));
        Account account = client.getAccount();
        log.info(String.format("Account Balance: R$ %f", account.getBalance()));

    }
}