حساب أيام العمل
معلومة مهمة. تتطلب الأعياد الدينية تأكيداً رسمياً؛ التاريخ التقديري ليس تأكيداً. عطلة نهاية الأسبوع: السبت والأحد، والفترة لا تتجاوز 366 يوماً.
فهم السياق
يعتمد التقويم المشترك للإدارة العمومية السبت والأحد للراحة الأسبوعية. قد تنتظر العطل الدينية تأكيداً رسمياً: null تعني غير معروف، وليس يوم عمل مضموناً. قد تختلف تقاويم الشركات.
فهم الإجابة
data: النتائج المطلوبة، في كائن أو قائمة.
meta: مصادر البيانات ورخصتها وتواريخها. تعني null أن القيمة غير معروفة أو غير متاحة.
API v2 هو المسار المرجعي. تبقى مسارات /api/v1 القديمة أسماء بديلة متوافقة مع السلوك المنشور حالياً، بما فيه تقسيم الصفحات؛ لم يُحدد موعد لحذفها.
حقول الإجابة 10
تشير [] إلى كل عنصر في القائمة. تعني null غير معروف أو غير متاح، ولا تعني صفراً. لغة الدليل لا تترجم قيم المصادر.
dataobjectالنتيجة المطلوبة: كائن واحد أو قائمة.
data.fromstringبداية الفترة المغطاة أو المطلوبة، وهي مشمولة.
data.tostringنهاية الفترة المغطاة أو المطلوبة، وهي مشمولة.
data.inclusivebooleanتعني true أن تاريخ البداية وتاريخ النهاية محسوبان معاً.
القيم المقبولة:
truedata.calendar_daysintegerعدد الأيام المدنية في الفترة، بما فيها البداية والنهاية.
data.weekend_daysintegerأسماء أيام الراحة داخل meta؛ وداخل data عدد أيام نهاية الأسبوع في الفترة.
data.holiday_weekdaysintegerعدد أيام العطل المؤكدة الواقعة خارج نهاية الأسبوع لتجنب الحساب مرتين.
data.business_daysinteger | nullالعدد الدقيق لأيام العمل؛ null ما دامت هناك عطل غير مؤكدة.
data.business_days_upper_boundintegerأقصى عدد ممكن لأيام العمل؛ قد تخفضه التأكيدات اللاحقة.
data.is_exactbooleanتكون true إذا كان العدد مؤكداً، وfalse إذا بقيت تواريخ غير مؤكدة.
بنية البيانات
{
"type": "object",
"additionalProperties": false,
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to",
"inclusive",
"calendar_days",
"weekend_days",
"holiday_weekdays",
"business_days",
"business_days_upper_bound",
"is_exact"
],
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"format": "date"
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"format": "date"
},
"inclusive": {
"enum": [
true
]
},
"calendar_days": {
"type": "integer",
"minimum": 0
},
"weekend_days": {
"type": "integer",
"minimum": 0
},
"holiday_weekdays": {
"type": "integer",
"minimum": 0
},
"business_days": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "string",
"nullable": true,
"enum": [
null
]
}
]
},
"business_days_upper_bound": {
"type": "integer",
"minimum": 0
},
"is_exact": {
"type": "boolean"
}
}
},
"meta": {
"type": "object",
"additionalProperties": false,
"required": [
"dataset",
"total",
"license",
"license_url",
"reviewed_at",
"transformation_version",
"scope",
"weekend_days",
"years",
"calendar_complete",
"pending_holiday_days",
"sources",
"limitations"
],
"properties": {
"dataset": {
"enum": [
"moroccan-public-holidays"
]
},
"total": {
"type": "integer",
"minimum": 0
},
"license": {
"type": "string"
},
"license_url": {
"type": "string"
},
"reviewed_at": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"format": "date"
},
"transformation_version": {
"type": "string"
},
"scope": {
"enum": [
"public-administration-common-calendar"
]
},
"weekend_days": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Saturday",
"Sunday"
]
}
},
"years": {
"type": "array",
"items": {
"type": "integer"
}
},
"calendar_complete": {
"type": "boolean"
},
"pending_holiday_days": {
"type": "integer",
"minimum": 0
},
"sources": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"producer",
"source_url",
"source_updated_at"
],
"properties": {
"producer": {
"type": "string"
},
"source_url": {
"type": "string"
},
"source_updated_at": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"format": "date"
},
{
"type": "string",
"nullable": true,
"enum": [
null
]
}
]
}
}
}
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}المصادر وتقسيم الصفحات 17
metaobjectسياق النتيجة: المصادر والتواريخ والرخصة وتقسيم الصفحات عند الاقتضاء.
meta.datasetstringاسم مجموعة البيانات الخاصة بالنتيجة أو المصدر.
القيم المقبولة:
"moroccan-public-holidays"meta.totalintegerعدد النتائج المطابقة للمرشحات قبل تقسيم الصفحات؛ وليس حجم هذه الصفحة.
meta.licensestringرخصة إعادة الاستخدام. تعني mixed وجود رخص مختلفة: راجع كل مصدر.
meta.license_urlstringرابط شروط الرخصة؛ null عند غياب الرابط.
meta.reviewed_atstringتاريخ آخر مراجعة لمصادر التقويم.
meta.transformation_versionstringإصدار قواعد تحويل مجموعة البيانات؛ مستقل عن إصدار الواجهة.
meta.scopestringالنطاق الذي تغطيه البيانات؛ لا يعني تغطية شاملة.
القيم المقبولة:
"public-administration-common-calendar"meta.weekend_daysstring[]أسماء أيام الراحة داخل meta؛ وداخل data عدد أيام نهاية الأسبوع في الفترة.
meta.yearsinteger[]السنوات التي يغطيها التقويم.
meta.calendar_completebooleanتكون true إذا تأكدت جميع التواريخ اللازمة في التقويم المطلوب.
meta.pending_holiday_daysintegerعدد أيام العطل التي تنتظر تواريخها تأكيداً رسمياً.
meta.sourcesobject[]المصادر المستخدمة لهذه النتيجة مع الجهات المنتجة والرخص.
meta.sources[].producerstringالجهة التي تنشر البيانات الأصلية.
meta.sources[].source_urlstringصفحة نشر المصدر أو التعريف ببياناته.
meta.sources[].source_updated_atstring | nullآخر تحديث معلن من المصدر؛ وليس تاريخ جلب الملف.
meta.limitationsstring[]القيود المعروفة للمصدر أو التغطية؛ اقرأها قبل استخدام البيانات.
الأخطاء
400: معامل غير صالح أو مفقود.
تتضمن الأخطاء error.code وerror.message وerror.request_id.
errorobjectتفاصيل الطلب الفاشل؛ تحل محل data وmeta.
error.codestringرمز ثابت للخطأ، مثل RESOURCE_NOT_FOUND؛ استعمله في منطق التطبيق.
error.messagestringشرح مقروء للخطأ؛ استعمل code في منطق التطبيق.
error.request_idstringمعرّف هذا الطلب، يفيد عند الإبلاغ عن مشكلة.