package at.vvo.omds.client;

import at.vvo.omds.types.omds3.r2025_05.on2antrag.unfall.CalculateUnfallResponseType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class LogCalculateResponse {

    public static void ausgabe(CalculateUnfallResponseType response) {
        Logger logger = LoggerFactory.getLogger(LogCalculateResponse.class);
        logger.info("Got Response As below ================================== : ");
        logger.info("Status : "+response.getStatus().getErgebnis().value());
        logger.info("KorrelationsId : "+response.getStatus().getKorrelationsId());
        logger.info("Personen =============================================== : ");
        logger.info("Anzahl-Personen : "+response.getBerechnungsantwort().getPersonen().size());
        for (int i=0; i<response.getBerechnungsantwort().getPersonen().size(); i++) {
            logger.info("Person-" + (i+1));
            if (response.getBerechnungsantwort().getPersonen().get(i).getPerson().getNATUERLICHEPERSON() != null) {
                logger.info("Natürliche Person : ");
                logger.info("Familienname : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getNATUERLICHEPERSON().getFamilienname());
                logger.info("Vorname : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getNATUERLICHEPERSON().getVorname());
                logger.info("Geburtsdatum : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getNATUERLICHEPERSON().getGebdat());
            }else {
                logger.info("Sonstige Person : ");
                logger.info("Name : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getSONSTIGEPERSON().getName());
                logger.info("Kurzname : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getSONSTIGEPERSON().getKurzname());
                logger.info("Kurzname : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getSONSTIGEPERSON().getSonstPersArtCd());
            }
            logger.info("Plz Ort : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getAdresse().getPLZ() + " " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getAdresse().getOrt());
            logger.info("Anschrift : " + response.getBerechnungsantwort().getPersonen().get(i).getPerson().getAdresse().getStrasse() + " " +
                    response.getBerechnungsantwort().getPersonen().get(i).getPerson().getAdresse().getHausnr() + "/" +
                    response.getBerechnungsantwort().getPersonen().get(i).getPerson().getAdresse().getZusatz());
        }
        logger.info("Verkaufsprodukt ======================================== : ");
        logger.info("Produktvariante : " + response.getBerechnungsantwort().getVerkaufsprodukt().getId());
        logger.info("Vertragsbeginn : " + response.getBerechnungsantwort().getVerkaufsprodukt().getVtgBeg());
        logger.info("Vertragsende : " + response.getBerechnungsantwort().getVerkaufsprodukt().getVtgEnde());
        logger.info("Vermittlernummer : " + response.getBerechnungsantwort().getVerkaufsprodukt().getVermittlernr());
        logger.info("Hauptfaelligkeit : " + response.getBerechnungsantwort().getVerkaufsprodukt().getHauptfaelligkeit());
        logger.info("Zahlrhythmus : " + response.getBerechnungsantwort().getVerkaufsprodukt().getZahlrhythmus());

    }
}
