You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.5 KiB

OfferStatistic = {}
OfferStatistic.__index = OfferStatistic
SECONDS_PER_DAY = 86400
OfferStatistic.new = function(timestamp, t, transactions, totalPrice, highestPrice, lowestPrice)
local stat = {
time = 0,
type = nil,
transactions = 0,
totalPrice = 0,
highestPrice = 0,
lowestPrice = 0
}
stat.time = math.floor(timestamp / SECONDS_PER_DAY) * SECONDS_PER_DAY
if t ~= MarketAction.Buy and t ~= MarketAction.Sell then
g_logger.error('OfferStatistic.new - invalid type provided.')
end
stat.type = t
stat.transactions = transactions
stat.totalPrice = totalPrice
stat.highestPrice = highestPrice
stat.lowestPrice = lowestPrice
setmetatable(stat, OfferStatistic)
return stat
end
function OfferStatistic:isNull()
return self.time == 0 or not self.type
end
-- Sets/Gets
function OfferStatistic:setTime(time)
if not time or type(time) ~= 'number' then
g_logger.error('OfferStatistic.setTime - invalid time provided.')
end
self.time = time
end
function OfferStatistic:getTime()
return self.time
end
function OfferStatistic:setType(t)
if not t or type(t) ~= 'number' then
g_logger.error('OfferStatistic.setType - invalid type provided.')
end
self.type = t
end
function OfferStatistic:getType()
return self.type
end
function OfferStatistic:setTransactions(transactions)
if not transactions or type(transactions) ~= 'number' then
g_logger.error('OfferStatistic.setTransactions - invalid transactions provided.')
end
self.transactions = transactions
end
function OfferStatistic:getTransactions()
return self.transactions
end
function OfferStatistic:setTotalPrice(amount)
if not totalPrice or type(totalPrice) ~= 'number' then
g_logger.error('OfferStatistic.setTotalPrice - invalid total price provided.')
end
self.totalPrice = totalPrice
end
function OfferStatistic:getTotalPrice()
return self.totalPrice
end
function OfferStatistic:setHighestPrice(highestPrice)
if not highestPrice or type(highestPrice) ~= 'number' then
g_logger.error('OfferStatistic.setHighestPrice - invalid highestPrice provided.')
end
self.highestPrice = highestPrice
end
function OfferStatistic:getHighestPrice()
return self.highestPrice
end
function OfferStatistic:setLowestPrice(lowestPrice)
if not lowestPrice or type(lowestPrice) ~= 'number' then
g_logger.error('OfferStatistic.setLowestPrice - invalid lowestPrice provided.')
end
self.lowestPrice = lowestPrice
end
function OfferStatistic:getLowestPrice()
return self.lowestPrice
end