package omdsclient;

import at.vvo.omds.types.omds3.r2025_05.common.APrioriUnterbausteinType;
import at.vvo.omds.types.omds3.r2025_05.common.APrioriProduktbausteinType;
import at.vvo.omds.types.omds3.r2025_05.common.APrioriVerkaufsproduktType;


import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.time.LocalDate;
import javax.xml.datatype.DatatypeConfigurationException;
import java.time.ZoneId;
import java.util.GregorianCalendar;

public class ProduktauskunftTests {


    public void testProduktauskunft() {
        APrioriProduktbausteinType vk_kraftfahrt_2024 = new APrioriVerkaufsproduktType();
        vk_kraftfahrt_2024.setId("1");
        vk_kraftfahrt_2024.setName("Kraftfahrt 2024");
        vk_kraftfahrt_2024.setFrom(convert(LocalDate.of(2024, 1, 1)));

        APrioriUnterbausteinType p_kfz_haftpflicht_2024 = new APrioriUnterbausteinType();
        p_kfz_haftpflicht_2024.setId("2");
        p_kfz_haftpflicht_2024.setName("Haftpflicht 2024");
        p_kfz_haftpflicht_2024.setFrom(convert(LocalDate.of(2024, 1, 1)));
        p_kfz_haftpflicht_2024.setTo(convert(LocalDate.of(2024, 1, 1)));

    }


    public static XMLGregorianCalendar convert(LocalDate date) {
        try {
            // Konvertiere LocalDate zu GregorianCalendar
            GregorianCalendar gregorianCalendar = GregorianCalendar.from(date.atStartOfDay(ZoneId.systemDefault()));

            // Erstelle XMLGregorianCalendar mit Hilfe der DatatypeFactory
            return DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);
        } catch (DatatypeConfigurationException e) {
            e.printStackTrace();
            return null; // Fehlerfall, falls die DatatypeFactory fehlschlägt
        }
    }
}
