from controllers.RESTController import APIRESTController from controllers.SOAPController import VUCEMController from typing import List, Dict, Any import xml.etree.ElementTree as ET from dataclasses import dataclass from typing import List, Dict class PartidaRestController(APIRESTController): def __init__(self): super().__init__() async def put_partida(self, partida_id: str, data: Dict[str, Any]) -> Dict[str, Any]: """ Método para actualizar un documento digitalizado en la API. Args: edocument_id: UUID del documento a actualizar data: Diccionario con los datos a actualizar """ return await self._make_request_async('PUT', f'customs/partidas/{partida_id}/', data=data) class PartidaVUController(VUCEMController): def __init__(self): super().__init__() # Implementación específica para Coves VU def generate_partidas_template(self, username: str, password: str, aduana: str, patente: str, pedimento: str, numero_operacion: str, partida: str) -> str: """ Genera el template SOAP para consultar partidas de un pedimento Args: username: Usuario de VUCEM password: Contraseña de VUCEM aduana: Código de aduana patente: Número de patente pedimento: Número de pedimento Returns: str: Template SOAP XML completo """ soap_template = f''' {username} {password.strip()} {aduana} {patente} {pedimento} {numero_operacion} {partida} ''' return soap_template partida_rest_controller = PartidaRestController() partida_vu_controller = PartidaVUController()