package com.ejie.ad74a.ws.client.dokusi.service;

import java.util.List;
import java.util.Map;

import com.ejie.ad74a.model.DocumentoPapel0;
import com.ejie.ad74a.model.DocumentosTarea;
import com.ejie.ad74a.model.Expedientes;
import com.ejie.ad74a.model.FirmaInfo;
import com.ejie.ad74a.ws.client.dokusi.gestDocumental.T65Content;
import com.ejie.ad74a.ws.client.dokusi.model.documentT65B.T65BDocumentIDType;
import com.ejie.ad74a.ws.client.dokusi.model.documentT65B.T65BDocumentType;
import com.ejie.ad74a.ws.client.dokusi.model.documentT65B.T65BStringListType;
import com.ejie.dossierDokusi.xml.Root;
import com.ejie.t65.jaxb.beans.fsd.T65ContentListType;
import com.ejie.t65.jaxb.beans.fsd.T65DocumentListType;
import com.ejie.t65.jaxb.beans.fsd.T65DocumentType;

/**
 * DokusiService.
 * 
 * @author
 */

public interface DokusiService {

	T65Content retrieveDocumentOrSuperLocator(String oidDocument);

	Map<String, Integer> retrieveDocumentsSignaturesCount(String[] dokusiIDs, String procedureID, String auditUser);

	T65DocumentListType retrieveDocumentsFirmantes(String[] docuOIDArray);

	T65DocumentListType retrieveDocuments(String[] strOid, T65ContentListType content, String[] keysList);

	boolean tramitateDocument(com.ejie.ad74a.ws.client.dokusi.model.papel0.Documento documento);

	boolean reTramitateDocument(com.ejie.ad74a.ws.client.dokusi.model.papel0.Documento documento);

	T65DocumentType descargarDocumentoDokusi(DocumentoPapel0 doc);

	com.ejie.ad74a.ws.client.dokusi.model.papel0.Formato recuperarFormatosDocumentosDokusi(
			com.ejie.ad74a.ws.client.dokusi.model.papel0.Documento documento);

	T65BDocumentType recuperarDocumentoLocator(String auditUser, DocumentosTarea doc,
			T65BStringListType t65bStringListType) throws Exception;

	T65BDocumentIDType almacenarDocumento(String auditUser, DocumentosTarea doc, Expedientes expediente)
			throws Exception;

	String anadirLocalizadorQR(String auditUser, String oid, boolean versionar, String reducir) throws Exception;

	String firmarDocumentoPades(DocumentosTarea documento) throws Exception;

	List<FirmaInfo> retrieveSignaturesInfo(String oid) throws Exception;

	Root searchDocumentsDossier(String documentalType, String dniUser, String inforce, int intMaxRows);

}
