package waluty.model;

import java.math.BigDecimal;
import java.math.RoundingMode;

// Ta klasa jest "niemutowalna" (immutable), tzn. raz utworzony obiekt tej klasy nie może zmienić stanu.
// O takich klasach mówi się też "value object". Przykłady znanych klas: String, Integer, BigDecimal, LocalDate

public class Waluta {
	private final String kod;
	private final String nazwa;
	private final BigDecimal kurs;

	public Waluta(String kod, String nazwa, BigDecimal kurs) {
		this.kod = kod;
		this.nazwa = nazwa;
		this.kurs = kurs;
	}

	public String getKod() {
		return kod;
	}

	public String getNazwa() {
		return nazwa;
	}

	public BigDecimal getKurs() {
		return kurs;
	}

	@Override
	public String toString() {
		return kod + " (" + nazwa + "): " + kurs;
	}
	
	public BigDecimal przeliczNaZlote(BigDecimal kwotaWWalucie) {
		// po pomnożeniu zaokrąglamy do 2 miejsc po przecinku
		return kwotaWWalucie.multiply(kurs).setScale(2, RoundingMode.HALF_UP);
	}
	
	public BigDecimal przeliczNaWalute(BigDecimal kwotaWZlotych) {
		// zaokrąglanie robi się od razu podczas dzielenia
		return kwotaWZlotych.divide(kurs, 2, RoundingMode.HALF_UP);
	}
	
}
