package com.ejie.ad74a.webservices.televidaWS;

import javax.jws.HandlerChain;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;

import com.ejie.ad74a.ws.server.televida.model.CabeceraType;
import com.ejie.ad74a.ws.server.televida.model.DatosBajaBeneficiarioType;
import com.ejie.ad74a.ws.server.televida.model.DatosBajaInstalacionType;
import com.ejie.ad74a.ws.server.televida.model.DatosCambioDomicilioType;
import com.ejie.ad74a.ws.server.televida.model.DatosInstalacionType;
import com.ejie.ad74a.ws.server.televida.model.DatosModificacionType;
import com.ejie.ad74a.ws.server.televida.model.DatosPrestServicioType;
import com.ejie.ad74a.ws.server.televida.model.DatosQuejasReclamacionesType;
import com.ejie.ad74a.ws.server.televida.model.DatosValoracionInicialType;
import com.ejie.ad74a.ws.server.televida.model.Respuesta;
import com.ejie.ad74a.ws.server.televida.model.ValoracionType;

@WebService(name = "TelevidaWebService", serviceName = "TelevidaWebServiceImpl", portName = "TelevidaWebServiceImplPort", targetNamespace = "http://com.ejie.ad74a.webservice", endpointInterface = "com.ejie.ad74a.webservices.televidaWS.TelevidaWebService")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, parameterStyle = ParameterStyle.WRAPPED)
@HandlerChain(file = "server-handlers.xml")
public interface TelevidaWebService {
	
	@WebMethod(operationName = "valoracionInicial")
	@WebResult(name = "comunicateResponse")
	public Respuesta valoracionInicial(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "valoracion", targetNamespace = "com/ejie/televida/xml") DatosValoracionInicialType datosValoracion) throws Exception;
	
	@WebMethod(operationName = "altaInstalacion")
	@WebResult(name = "comunicateResponse")
	public Respuesta altaInstalacion(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "altaInstalacion", targetNamespace = "com/ejie/televida/xml") DatosInstalacionType datosInstalacion) throws Exception;
	
	@WebMethod(operationName = "modificacion")
	@WebResult(name = "comunicateResponse")
	public Respuesta modificacion(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "modificacion", targetNamespace = "com/ejie/televida/xml") DatosModificacionType modificacion) throws Exception;

	@WebMethod(operationName = "cambioDomicilio")
	@WebResult(name = "comunicateResponse")
	public Respuesta cambioDomicilio(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "cambioDomicilio", targetNamespace = "com/ejie/televida/xml") DatosCambioDomicilioType cambioDomicilio) throws Exception;
	
	@WebMethod(operationName = "prestacionServicio")
	@WebResult(name = "comunicateResponse")
	public Respuesta prestacionServicio(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "prestacionServicio", targetNamespace = "com/ejie/televida/xml") DatosPrestServicioType prestacionServicio) throws Exception;
	
	@WebMethod(operationName = "bajaPrestador")
	@WebResult(name = "comunicateResponse")
	public Respuesta bajaPrestador(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "bajaPrestador", targetNamespace = "com/ejie/televida/xml") DatosBajaBeneficiarioType bajaPrestador) throws Exception;
	
	@WebMethod(operationName = "bajaInstalacion")
	@WebResult(name = "comunicateResponse")
	public Respuesta bajaInstalacion(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "bajaInstalacion", targetNamespace = "com/ejie/televida/xml") DatosBajaInstalacionType bajaInstalacion) throws Exception;
	
	@WebMethod(operationName = "quejas")
	@WebResult(name = "comunicateResponse")
	public Respuesta quejas(@WebParam(name = "cabecera", targetNamespace = "com/ejie/televida/xml") CabeceraType cabecera,
			@WebParam(name = "quejas", targetNamespace = "com/ejie/televida/xml") DatosQuejasReclamacionesType quejasRelamaciones) throws Exception;

}
