package response

import (
	"encoding/xml"
)

type SoapEnvelopeTipoActividadesSector struct {
	XMLName xml.Name                      `xml:"Envelope"`
	Body    SoapBodyTipoActividadesSector `xml:"Body"`
}

type SoapBodyTipoActividadesSector struct {
	Response SincronizarResponseTipoActividadesSector `xml:"sincronizarListaActividadesDocumentoSectorResponse"`
}

type SincronizarResponseTipoActividadesSector struct {
	RespuestaLista RespuestaListaParametricasTipoActividadesSector `xml:"RespuestaListaActividadesDocumentoSector"`
}

type RespuestaListaParametricasTipoActividadesSector struct {
	Transaccion  bool                    `xml:"transaccion"`
	ListaCodigos []TipoActividadesSector `xml:"listaActividadesDocumentoSector"`
}

type TipoActividadesSector struct {
	CodigoActividad       string `xml:"codigoActividad,omitempty" json:"codigo,omitempty"`
	CodigoDocumentoSector string `xml:"codigoDocumentoSector,omitempty" json:"codigoDocumentoSector,omitempty"`
	TipoDocumentoSector   string `xml:"tipoDocumentoSector,omitempty" json:"descripcion,omitempty"`
}

// Implementaciones para cada tipo de envelope
func (e SoapEnvelopeTipoActividadesSector) IsTransactionSuccessful() bool {
	return e.Body.Response.RespuestaLista.Transaccion
}

func (e SoapEnvelopeTipoActividadesSector) GetData() []TipoActividadesSector {
	return e.Body.Response.RespuestaLista.ListaCodigos
}
