import logging from datetime import datetime, timezone from gui.v2.actions.config import load_gui_config, save_gui_config, default_gui_config def save_ticket_verification_failure(gui_config_file, result): try: failed_validations = result.get('failed_validations', []) if isinstance(result, dict) else [] if not failed_validations: return False config = load_gui_config(gui_config_file) if config is None: config = default_gui_config() if "tickets" not in config: config["tickets"] = {} config["tickets"]["failed_verification"] = { "message": result.get('message', 'verification_failed'), "how_many_failed": result.get('how_many_failed', len(failed_validations)), "failed_validations": list(failed_validations), "updated_at": datetime.now(timezone.utc).isoformat(), } save_gui_config(gui_config_file, config) return True except Exception as e: logging.error(f"Error saving ticket verification failure: {e}") return False def get_ticket_verification_failure(gui_config_file): try: config = load_gui_config(gui_config_file) if not config: return None failure = config.get("tickets", {}).get("failed_verification") if not isinstance(failure, dict): return None failed_validations = failure.get("failed_validations") if not failed_validations: return None return failure except Exception as e: logging.error(f"Error loading ticket verification failure: {e}") return None def clear_ticket_verification_failure(gui_config_file): try: config = load_gui_config(gui_config_file) if not config or "tickets" not in config: return config["tickets"].pop("failed_verification", None) save_gui_config(gui_config_file, config) except Exception as e: logging.error(f"Error clearing ticket verification failure: {e}")