package edu.upvehu.gbg.xml.jaxb;

import javax.xml.bind.annotation.*;
import java.util.List;
import java.util.ArrayList;

// FIX CRÍTICO: Se añade el 'namespace' para que coincida con el XML de entrada.
@XmlRootElement(name = "chatApp", namespace = "http://www.example.com/chat")
@XmlAccessorType(XmlAccessType.FIELD)
public class ChatApp {

    // CORRECCIÓN: Se eliminan las anotaciones @XmlAttribute para xmlns/xsi 
    // JAXB las maneja automáticamente al definir el namespace en @XmlRootElement.

    @XmlAttribute(name = "exportDate")
    private String exportDate;

    // FIX de robustez: Inicializar la lista para evitar NPE si el elemento padre es válido pero no tiene hijos.
    @XmlElement(name = "conversacion", namespace = "http://www.example.com/chat")
    private List<Conversacion> conversacion = new ArrayList<>();

    // Getters y Setters
    public String getExportDate() {
        return exportDate;
    }

    public void setExportDate(String exportDate) {
        this.exportDate = exportDate;
    }

    public List<Conversacion> getConversacion() {
        return conversacion;
    }

    public void setConversacion(List<Conversacion> conversacion) {
        this.conversacion = conversacion;
    }
}