Módulo:Infobox/Estádio

Origem: Wikipédia, a enciclopédia livre.
local building = require 'Módulo:Infobox/Funções/Edifício'
local general = require 'Módulo:Infobox/Funções'
local wd = require 'Módulo:Infobox/Wikidata'
local address = require 'Módulo:Endereço'
local localdata = require 'Módulo:Infobox/Localdata'

local formats = {
    --{ícone mapa, ícone topo, cor título, cor sub-título, cor texto)
    Q37025296 = {'pitch', nil, '#D7877B', 'padrao', 'padrao', 'padrao'}, -- estádio de atletismo
    Q595452 = {'basebol', nil, '#408080', 'padrao', '#FFFFFF', 'padrao'}, -- estádio de baseball
    Q37985280 = {'futebol-americano', nil, '#BFD33C', 'padrao', 'padrao', 'padrao'}, -- estádio de futebol americano
    Q1154710 = {'futebol', nil, '#99CC99', 'padrao', 'padrao', 'padrao'}, -- estádio de futebol
    Q741118 = {'tenis', 'desporto', '#FFAA77', 'padrao', 'padrao', 'padrao'}, -- campo de tênis
    default = {nil, nil, '#EFEFEF', 'padrao', 'padrao', 'padrao'}
}

local function wdformat() --retorna uma tabela contendo a cor principal da infobox e o ícone do título
    local wtypes = wd.stringTable{ -- busca os Qid das profissões
        entity = localdata.item,
        property = 'P31',
        displayformat = 'raw',
        excludespecial = true
    }
    local default = formats.default
    wtypes = wd.addVals(wtypes or {}, {property = 'P279'}, 1) -- usamos também a subclasse
    for i, item in pairs(wtypes or {}) do
        if formats[item] then
            return formats[item]
        end
    end
    return default
end
local function setcharte()
    if localdata['charte'] then
        charte = localdata['charte']
        for i, j in pairs(formats) do
            if j[2] == charte then
                return j
            end
        end
    end
    return wdformat()
end

local displayformat = setcharte()

return
    {
    maincolor = displayformat[3],
    secondcolor = displayformat[4],
    thirdcolor = displayformat[5],
    parts = {
        
        general.title(),
        general.logo(),
        building.mainimage('!Artigos de arquitetura sem imagem'),
        {type = 'table', title = 'Generalidades', rows = {
            {type = 'mixed', label = 'Antigos nomes', value = 'antigos nomes'},
            {type = 'mixed', label = 'Apelido', value = 'apelido'},
            {type = 'mixed', label = 'Nome', value = 'nome_completo'},
            {type = 'mixed', label = 'Endereço', value = {'endereço', 'local'}, wikidata = function ( item ) return address.fullAddress(item) end}
        }},
    
        {type = 'table', title = 'Construção e abertura', rows = {
            building.construction(),
            building.opening(),
            building.creator(),
            building.renovation(),
            {type = 'mixed', label = 'Custo de construção', value = 'custo construções'},
            building.closure(),
            building.demolition(),
        }},
    
        {type = 'table', title = 'Utilização', rows = {
            {type = 'mixed', label = 'Clubes residentes', value = 'clubes residentes', property = 'P466'},
            {type = 'mixed', label = 'Proprietário', value = 'proprietário', property = 'P127'},
            {type = 'mixed', label = 'Operador', value = 'operador', property = 'P137'},
            {type = 'mixed', label = 'Competições', value = 'competições'},
        }},
    
        {type = 'table', title = 'Equipamento', rows = {
            {type = 'mixed', label = 'Tipo de superfície', value = {'superfície', 'gramado', 'relvado'}, property = 'P765'},
            {type = 'mixed', label = 'Capacidade', value = 'capacidade'}, -- , property = 'P1083' mas veja os qualificadores para usar para evitar as coisas estranhas
            {type = 'mixed', label = 'Tribunas', value = 'tribunas'},
            {type = 'mixed', label = 'Público recorde', value = 'publicorecorde'},
            {type = 'mixed', label = 'Data recorde', value = 'datarecorde'},
            {type = 'mixed', label = 'Partida com mais público', value = 'jogorecorde'},
            {type = 'mixed', label = 'Dimensões', value = 'dimensões'},
            building.protection()
        }},
    
        {type = 'table', title = 'Localização', rows = {
            building.coordenadas(),
        }},
    
        building.geoloc({marker=displayformat[1], default_zoom=11}),
    }
}