--[[
  Update job progress

  Input:
    KEYS[1] Job id key
    KEYS[2] event stream key
    KEYS[3] meta key

    ARGV[1] id
    ARGV[2] progress

  Output:
     0 - OK
    -1 - Missing job.

  Event:
    progress(jobId, progress)
]]
local rcall = redis.call

-- Includes
--- @include "includes/getOrSetMaxEvents"

if rcall("EXISTS", KEYS[1]) == 1 then -- // Make sure job exists
    local maxEvents = getOrSetMaxEvents(KEYS[3])

    rcall("HSET", KEYS[1], "progress", ARGV[2])
    rcall("XADD", KEYS[2], "MAXLEN", "~", maxEvents, "*", "event", "progress",
          "jobId", ARGV[1], "data", ARGV[2]);
    return 0
else
    return -1
end
