import logging

VENDOR_DEPENDENCY_STRATEGY = "local-path-package"
VENDOR_ESCPOS_PACKAGE = "escpos"
VENDOR_ESCPOS_LOCKED_VERSION = "3.1"


def get_vendor_escpos_lock_info():
    return {
        "strategy": VENDOR_DEPENDENCY_STRATEGY,
        "package": VENDOR_ESCPOS_PACKAGE,
        "locked_version": VENDOR_ESCPOS_LOCKED_VERSION,
    }


def validate_escpos_vendor_lock(logger=None):
    active_logger = logger or logging.getLogger(__name__)
    try:
        import escpos as local_escpos
    except (ImportError, ModuleNotFoundError) as exc:
        active_logger.error("Vendor escpos tidak dapat diimport: %s", exc)
        return False

    actual_version = str(getattr(local_escpos, "__version__", "")).strip()
    if actual_version != VENDOR_ESCPOS_LOCKED_VERSION:
        active_logger.warning(
            "Versi vendor escpos tidak sesuai lock (expected=%s, actual=%s).",
            VENDOR_ESCPOS_LOCKED_VERSION,
            actual_version or "<kosong>",
        )
        return False
    return True
