وحدة:بطاقة/قالب/ملعب رياضي

-- Credits:
-- Original from fr:Module:Infobox/Personne
-- forked by وهراني @arwiki (ar:وحدة:بطاقة/قالب/شخص)
-- Version: 20231206

local building = require "وحدة:بطاقة/أدوات/مبنى"
local general = require "وحدة:بطاقة/أدوات"

local localdata = require( 'وحدة:بطاقة/بيانات' )
local wd = require 'Module:Wikidata.Ca'

local formats = {
	--{icône carte, icône entete, couleur titre, couleur sous-titre, couleur texte)
	Q37025296 = {'pitch', 'athlétisme', '#D7877B', 'defaut', 'defaut', 'defaut'}, -- ملعب ألعاب القوى
	Q2488656 = {'tennis', 'badminton', '#FFBFC2', 'defaut', 'defaut', 'defaut'}, -- كرة الريشة
	Q595452 = {'baseball', 'baseball', '#408080', 'defaut', '#FFFFFF', 'defaut'}, -- ملعب كرة القاعدة
	Q682943 = {'cricket', 'cricket', '#F5F5DC', 'defaut', 'defaut', 'defaut'}, -- ملعب كريكت
	Q1154710 = {'soccer', 'football', '#99CC99', 'defaut', 'defaut', 'defaut'}, -- ملعب كرة قدم
	Q1048525 = {'golf', 'golf', '#99CC99', 'defaut', '#FFFFFF', 'defaut'}, -- ملعب غولف
	Q200023 = {'swimming', 'natation', '#318CE7', 'defaut', 'defaut', 'defaut'}, -- مسبح
	Q130003 = {'skiing', 'defaut', '#DFEDFF', 'defaut', 'defaut', 'defaut'}, -- محطة ألعاب شتوية
	Q13380226 = {'tennis', 'tennis', '#FFAA77', 'defaut', 'defaut', 'defaut'}, -- ملعب تنس
	Q830528 = {'bicycle', 'cyclisme', '#FFDF80', 'defaut', 'defaut', 'defaut'}, -- دراجات هوائية
	default = {'building', 'stadium', '#EFEFEF', 'defaut', 'defaut', 'defaut'}
}

local function wdformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
	local id = localdata.getEntity()
	if(not id or id =='-') then return formats.default end
	local wtypes = wd.claim{ 
		item = (type(id) == 'table' and id.id), 
		property = 'P31', 
		formatting = 'raw', 
		separator='/·/'	
	}
	local wtypes2 = wd.claim{ 
		item = (type(id) == 'table' and id.id), 
		property = 'P279', 
		formatting = 'raw', 
		separator='/·/'	
	}	
	if not wtypes then wtypes ='' end
	if not wtypes2 then wtypes2 ='' end
	
	wtypes = mw.text.split(wtypes..'/·/'..wtypes2, '/·/') 
	local default = formats.default

	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],
    wikimod = 'Wikidata.Ca',

	parts = {
		
		general.title({icon=displayformat[2]}),
		{type = 'subtitle', 
				value = {'اسم اصلي','عنوان أصلي','العنوان الأصلي','title_orig','film_name'		}, 
				wikidata= {property = 'P1705',conjunction = "<br />"
					,list="notlang",formatting = '$text {{Language icon|NoCat=y|$language}}'}},
		general.logo(),
		building.mainimage('مقالة عن ملعب'),
		{type = 'table', title = 'معلومات عامة', rows = {
			{type = 'mixed', label = 'أسماء سابقة', 
				value = {'أسماء سابقة','اسم سابق','الأسماء_السابقة','former names'}},
			{type = 'mixed', label = 'لقب', 
				value = {'لقب','اللقب','اسم_الشهرة','nickname'}},
			{type = 'mixed', label = 'الاسم الكامل', 
				value ={'اسم كامل','الاسم_الكامل','fullname'} },
			{type = 'mixed', label = 'سمّي باسم', 
				value ={'سمي_باسم','سمي باسم','named_after'}, 
				wikidata= {property = 'P138'} },
			building.usage(),
			building.adminlocation(),
		    general.website(),
		}},
	
		{type = 'table', title = "التشييد والافتتاح", rows = {
			building.construction(),
			building.opening(),
					
			building.creator(),
			{type = 'mixed', label = 'مهندس الخدمات', 
				value = {'مهندس الخدمات','مهندس_الخدمات'}},
			{type = 'mixed', label = 'المقاول الرئيسي', 
				value = {'المقاول الرئيسي','المقاول_الرئيسي'}, 
				property = 'P137'},
			{type = 'mixed', label = 'المتعهد العام', 
				value = {'مهندس الخدمات','المتعهد_العام','المتعهد العام'}},
			{type = 'mixed', label = 'مدير المشروع', 
				value = {'مدير_المشروع','مدير المشروع','project_manager','project manager'}},
			{type = 'mixed', label = 'المتعهد الرئيسي', 
				value = {'المتعهد_الرئيسي','المتعهد الرئيسي','main contractors','main_contractors'}},
			
			building.renovation(),
			{type = 'mixed', label = 'كلفة التشييد', 
				value ={'كلفة_الإنشاء','كلفة','construction_cost','construction cost'} , 
				wikidata={property = 'P2130', formatting='unit', case=general.FormatNumVal}},
			building.material(),
			building.closure(),
			building.demolition(),
		}},
	
		{type = 'table', title = 'الاستعمال', rows = {
			{type = 'mixed', label = 'الرياضة', 
				value = {'رياضة','sport'}, 
				wikidata = {showDate='true',property='P641', listrank='bestrank', conjunction='<br />'} ,
			},
			{type = 'mixed', label = 'المستضيف', 
				value = {'فرق','مستضيف','tenants'}, 
				wikidata= {showDate='true',property='P466', listrank='bestrank', conjunction='<br />'} ,
                metadata = {
					description = "الفرق و أي أطراف أخرى تستخدم هذا المكان للإستضافة . استخدام تنسيق :      أسم الفريق ( الدوري / المنظمة ) سنة-سنة",
					option = "", 
					type = "", 
                }
			},
			building.owner(),
			building.operator(),
			building.significantEvent(),
		}},
	
		{type = 'table', title = 'معلومات أخرى', rows = {			
			{type = 'mixed', label = 'الطاقة الاستيعابية', 
				value = {'سعة','عدد_المقاعد','capacity','seating_capacity'} , 
				wikidata={property = 'P1083' ,qualifier='P641', qualifier2='P518'
					, formatting='table', rowformat='* $0$R0 $1$2$3'
					, rowsubformat1='<br/><small>($1)</small>'
					, rowsubformat2='<br/><small>($2)</small>' 
					, qualifier4='P580', qualifier5= 'P582'
					, colformat4='Y' , colformat5='Y' 
					, qualifier3 ='P580 or P582', rowsubformat3='<small>($4 – $5)</small>'
					, listrank='bestrank', conjunction='<br />'}}, 
			{type = 'mixed', label = 'الأرضية', value = {'أرضية','الأرضية','surface'}, 
				wikidata={property = 'P765', formatting='unit'},
                metadata = {
                    description = "نوعية السطح",
                    option = "", 
                    type = "string", 
					suggestedvalues = {
						'عشب طبيعي',
						'عشب اصطتاعي',
						'تراب',
						'رمل',
					},
                }
			},
			{type = 'mixed', label = 'حضور قياسي ', 
				value ={ 'حضور_قياسي','record_attendance'},
				wikidata= {property='P1110'},
		        metadata = {
					description = "أكبر عدد مسجل للحاضرين. يرفق باسم الحدث والتاريخ",
					option = "", 
					type = "", 
		        }
			},
			{type = 'mixed', label = 'الأبعاد', 
				value = {'أبعاد'},
		        metadata = {
					description = "أبعاد المكان. استخدم التنسيق :طول × عرض م",
					option = "", 
					type = "", 
		        }
			},
			building.dimensions(),
			building.protection(),
			building.transport(),
			general.awards(),
		}},
	
		{type = 'table', title = 'الموقع الجغرافي', rows = {
			building.coordinates(),
		}},
	
		building.geoloc({marker=displayformat[1], default_zoom=11, geotype='Point'}),
	}
}