﻿from pypos.core.base_controller import BaseController
from pypos.modules.auth.services.auth_config_service import AuthConfigService


class ConfigDialogController(BaseController):
    def __init__(self, view, service=None):
        super().__init__()
        self.view = view
        self.service = service or AuthConfigService()

    def load_form_data(self):
        return self.service.load()

    def save_form_data(self, api_base_url, client_name, request_timeout):
        try:
            result = self.service.save(
                api_base_url=api_base_url,
                client_name=client_name,
                request_timeout=request_timeout,
            )
            restart_required = bool((result or {}).get("restart_required"))
            if restart_required:
                message = "Konfigurasi berhasil disimpan. Aplikasi akan restart untuk menerapkan perubahan URL."
            else:
                message = "Konfigurasi berhasil disimpan."
            return True, message, restart_required
        except (ValueError, TypeError, RuntimeError, OSError) as e:
            return False, str(e), False
