metadata {
    definition(
            name: 'Hikvision Locker',
            namespace: 'vctgomes',
            author: 'Vitor Gomes',
            importUrl: 'https://raw.githubusercontent.com/VCTGomes/Hikvision-with-Status-to-Hubitat/main/hik-locker.groovy'
    ) {
        capability 'Lock'
    }
}

preferences {
    section('Logging') {
        input('debug', 'bool', title: 'Enable debug logging?', required: true, defaultValue: false)
    }
}

def installed() {
    logDebug 'Installed'
}

def updated() {
    logDebug 'Updated'
}

def configure() {
    logDebug 'Configured'
}

def lock() {
    logDebug 'lock()'
    if (device.currentValue('lock') != 'locked') {
        sendEvent(name: 'lock', value: 'locked', isStateChange: true)
    }
}

def unlock() {
    logDebug 'unlock()'
    if (device.currentValue('lock') != 'unlocked') {
        sendEvent(name: 'lock', value: 'unlocked', isStateChange: true)
    }
}

def lockChangeHandler(newValue) {
    logDebug "lockChangeHandler() called: ${newValue}"
    sendEvent(name: 'lock', value: newValue)
    if (newValue == 'locked') {
    } else if (newValue == 'unlocked') {
    }
}

private void logDebug(message) {
    if (debug) log.debug message
}