package UE01_030924_Wiederholung;

public class Girokonto extends Konto {
    String name = "undefined";

    public Girokonto(String name, double betrag, double zinssatz) {
        super(betrag, zinssatz, "Girokonto");
        if (name != null) this.name = name;
    }

    public Girokonto(String name, double zinssatz) {
        super(zinssatz, "Girokonto");
        this.name = name;
    }

    public double einzahlung(double betrag) {
        if (betrag < 0) return 0;
        this.kontostand += betrag;
        this.buchungsvorgaenge.add("Einzahlung: " + betrag);
        return betrag;
    }

    public boolean auszahlung(double betrag) {
        if (this.kontostand - betrag < 0) return false;
        this.kontostand -= betrag;
        this.buchungsvorgaenge.add("Auszahlung: " + betrag);
        return true;
    }

    public double ueberweisung(Konto empfaenger, double betrag) {
        if (betrag < 0 || !auszahlung(betrag)) return 0;
        empfaenger.einzahlung(betrag);
        this.buchungsvorgaenge.add("Überweisung an " + kontonummer(empfaenger.kontonummer) + ": " + betrag);
        return betrag;
    }

    @Override
    public String toString() {
        return kontonummer(this.kontonummer) + " - " + this.kontoTyp + " von " + this.name + ": Zinssatz: " + this.zinssatz + "%, Kontostand: " + this.kontostand;
    }
}
