local mWikidata = require('Modulo:Wikidata')
local p = {}
local agenzia


function p.nomeagenzia(idagenzia)

return idagenzia

end

function p.equipaggio(ruoli, qualificatore, ruolo)
       local idNome
       local text =""
       for _,v in pairs(ruoli) do
        if v == qualificatore then
          text = text .. '| ' ..ruolo.. ' || ' .. mWikidata._getProperty( { 'P1029', qualifier='P39', qualifiervalue=qualificatore } )
          idNome = mWikidata._getProperty( { 'P1029', qualifier='P39', qualifiervalue=qualificatore,formatting='raw' } )
          text = text .. ' ('.. mWikidata._getQualifier({'P450','P1545',n=mWikidata._indexOf({'P450',mWikidata._getId(),from=idNome}),from=idNome}) .. ')'

          if agenzia == mWikidata._getProperty({'P108',qualifier='P794',qualifiervalue='Q11631',from=idNome,formatting='raw'}) then
          else
               text = text .. ' - '.. nomeagenzia(mWikidata._getProperty({'P108',qualifier='P794',qualifiervalue='Q11631',from=idNome, formatting='raw'}))
          end

          text = text .. '\n|-\n'
          break
        end
       end
   return text
end


function p.main(frame)
        local text ='{| class="wikitable"\n|-\n! Ruolo!!Equipaggio\n|-\n'

	local equipaggio, membriequipaggio
        local ruoli={}

        membriequipaggio = mWikidata._N( { 'P1029' } )

        for i=0,membriequipaggio,1
            do
                 ruoli[i]=mWikidata._getQualifier( { 'P1029', 'P39', n=i+1, formatting='raw' } )
            end
        agenzia = mWikidata._getProperty({'P137',formatting='raw'})        

        text = text .. p.equipaggio(ruoli, 'Q20113945', 'Comandante')
        text = text .. p.equipaggio(ruoli, 'Q20644849', 'Pilota')
        text = text .. p.equipaggio(ruoli, 'Q20114066', 'Pilota del modulo di comando')
        text = text .. p.equipaggio(ruoli, 'Q20114009', 'Pilota del modulo lunare')
        text = text .. p.equipaggio(ruoli, 'Q20162978', 'Pilota')                   -- dello Space Shuttle
        text = text .. p.equipaggio(ruoli, 'Q20116202', 'Specialista di missione 1')
        text = text .. p.equipaggio(ruoli, 'Q20163477', 'Specialista di missione 2')
        text = text .. p.equipaggio(ruoli, 'Q20163680', 'Specialista di missione 3')
        text = text .. p.equipaggio(ruoli, 'Q20199279', 'Specialista di missione 4')
        text = text .. p.equipaggio(ruoli, 'Q20199285', 'Specialista di missione 5')
        text = text .. p.equipaggio(ruoli, 'Q20203864', 'Specialista di missione 6')
        text = text .. p.equipaggio(ruoli, 'Q20443756', 'Ingegnere di volo 1')
        text = text .. p.equipaggio(ruoli, 'Q20443763', 'Ingegnere di volo 2')
        text = text .. p.equipaggio(ruoli, 'Q20163858', 'Specialista del carico utile 1')
        text = text .. p.equipaggio(ruoli, 'Q20163870', 'Specialista del carico utile 2')
        text = text .. p.equipaggio(ruoli, 'Q20190803', 'Specialista del carico utile 3')
        text = text .. p.equipaggio(ruoli, 'Q20623701', 'Turista spaziale')

        text = text .. '|}'  
        text = text .. "\n<small>Tra parentesi il numero di voli spaziali completati da ogni membro dell'equipaggio, inclusa questa missione.</small>"
 
        return string.format('%s',text) 
end

return p