-- Modulo per gestire le liste di monumenti di Wiki Loves Monuments

require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')

local p = {}

function p.map_point(qid)
    local data = {}
    local desc = ''
        
    desc = desc .. '{{WLM-link-2019|' .. qid .. '}}'
    local img = mWikidata._getProperty({'P18', from = qid, snaktype = 'value', n=1, pattern="[[File:$1|200px]]"})
    if img then
        desc = desc .. '<br/>' .. img
    end
    data.type = "Feature"
    data.properties = {
        title = mWikidata._getLink({qid}),
        description = desc
    }
    data.geometry = {
        type = "Point",
        coordinates = {
            tonumber(mWikidata._getProperty({'P625', from = qid, snaktype = 'value', coord='longitude', n=1})),
            tonumber(mWikidata._getProperty({'P625', from = qid, snaktype = 'value', coord='latitude', n=1}))
        }
    }
    
    return data
end

function p.map_data(frame)
	local args = getArgs(frame)

    local points = {}

    for _, qid in pairs(args) do
        table.insert(points, p.map_point(qid))
    end

    return mw.text.jsonEncode(points)
end

return p