Skip to main content
#P1095

Function getAgeTitle

·  هدف:

این متد یک ابزار کمکی ساده و کاربردی برای تعیین گروه سنی (adult, child, infant) یک شخص بر اساس تاریخ تولد و یک تاریخ مبنا (معمولاً تاریخ پرواز یا شروع اقامت) است. منطق آن بر اساس محاسبه اختلاف تعداد روزها بین دو تاریخ کار می‌کند. ابتدا تاریخ تولد را با استفاده از Functions::checkDatetime به فرمت استاندارد تبدیل کرده و سپس اختلاف آن با تاریخ مبنا را بر حسب روز محاسبه می‌کند. در نهایت، بر اساس قوانین استاندارد صنعت هوانوردی و گردشگری، گروه سنی را مشخص می‌کند: کمتر یا مساوی ۷۳۰ روز (۲ سال) به عنوان infant (نوزاد)، بین ۷۳۰ و ۴۳۸۰ روز (۲ تا ۱۲ سال) به عنوان child (کودک)، و بیشتر از ۴۳۸۰ روز (۱۲ سال) به عنوان adult (بزرگسال) در نظر گرفته می‌شود.

(Atomic)
ویژگی‌ها توضیحات
هدف کلی ایجادتعیین یکگروه یاسنی چند(نوزاد، چارترکودک، بزرگسال) بر اساس تنظیماتتاریخ ورودی، شامل نوع، جزئیات مسیر/اقامتگاه و الگوی تکرار.تولد.
عملیاتمنطق اتمیاصلی محاسبه اختلاف روز بین تاریخ تولد و تاریخ مبنا.
قوانین سنیinfant <= 2 سال, child > 2 و <= 12 سال, adult > 12 سال.
استانداردسازی ورودی استفاده از DB:Functions::transactioncheckDatetime برای تضمینمدیریت یکپارچگیفرمت‌های داده‌ها؛مختلف تمام عملیات یا با هم موفق می‌شوند یا با هم لغو می‌گردند.تاریخ.
پشتیبانی از انواع چارترکاربرد مدیریتابزار منطقکمکی متفاوتداخلی برای چارترهای route (پرواز، قطار، اتوبوس) و accommodation (هتل).
موتور تکرار (Repeat Engine)قابلیت ایجاد چارترها بر اساس یک الگوی تکرار: لیست تاریخ‌های مشخص (dates)، روزهای هفتگی (weekly) یا دوره‌های زمانی متناوب (periodic).
ساختار داده پیچیدهپردازش ساختارهای تواستفاده در توسایر برایمتدهای جزئیاتنیازمند مسیر،به کلاس‌هایگروه قیمتی (calculations)، مالیات‌ها (taxes) و اطلاعات مالی (financial).
پاک‌سازی کشپس از ایجاد موفقیت‌آمیز، کلیدهای مرتبط در Redis را حذف می‌کند تا اطمینان حاصل شود که داده‌های جدید در پاسخ‌های بعدی لحاظ می‌شوند.سنی.

·     ورودی‌ها (پارامتر‌ها):

 

توضیحاتموقعیت نوع داده نام پارمتر
آبجکتتاریخ اصلیتولد درخواستشخص حاویدر تمام داده‌فرمت‌های لازممختلف برای(مثلاً ایجاد1990-05-20, چارتر.1369/02/30). Illuminate\Http\RequestParameterstring $requestbirth
کلیدتاریخ اصلی.مبنا نوعبرای چارترمحاسبه راسن مشخص(مثلاً می‌کند.تاریخ مقادیر معتبر: 'route' یا 'accommodation'پرواز).Parameter string $request->type
(برای type: 'route') نوع وسیله نقلیه را مشخص می‌کند: 'aircraft', 'train', 'bus'.string$request->subtype
آرایه‌ای حاوی جزئیات اصلی چارتر، مانند مبدأ، مقصد، تاریخ و اطلاعات وسیله نقلیه.array$request->items
مهم. آرایه‌ای از آبجکت‌ها که کلاس‌های مختلف قیمتی و ظرفیتی چارتر را تعریف می‌کنند.array$request->calculations
(اختیاری) آبجکتی که منطق تکرار چارتر را مشخص می‌کند. شامل type (مانند 'weekly') و جزئیات مربوطه.object$request->repeat
(برای type: 'accommodation') شامل start و end برای محدوده تاریخ اقامت.object$request->date_range
سایر فیلدها مانند capacity, description, permissions و غیره.......datetime

·     خروجی (Return):

 

توضیحات نوع داده
یکیکی پاسخاز JSONسه کهرشته در صورت موفقیت، حاوی یک آرایه با کلیدهایزیر: main'infant'،, calculations'child'،, taxes'adult' و financial است. این کلیدها به ترتیب شناسه‌های ایجاد شده برای چارتر اصلی، کلاس‌های قیمتی، مالیات‌ها و اطلاعات مالی را در خود جای داده‌اند. در صورت بروز خطا، یک پاسخ با کد وضعیت 500 و پیام خطا برگردانده می‌شود.. Illuminate\Http\JsonResponsestring

·  مثالمثال استفاده:استفاده / سناریو:

سناریو
//۱: سناریو:تعیین ایجادگروه سنی یک چارترکودک

پرواز
    هفتگی
  • Call: برایgetAgeTitle('2015-08-01', روزهای'2025-10-15 شنبه14:30:00')
  • Action:
  1. اختلاف روز بین 2015-08-01 و دوشنبه2025-10-15 //محاسبه POSTمی‌شود /api/panel/v2/charter/storeکه //تقریباً Body۳۷۲۷ (JSON):روز {است.
  2. "type":
  3. 3727 "route",بین "subtype": "aircraft", "capacity": 180, "description": "چارتر هفتگی تهران-مشهد", "permissions": { /* ... */ }, "repeat": { "type": "weekly", "from": "1404/08/01", "to": "1404/08/30", "days": [6, 1] // شنبه730 و دوشنبه4380 }قرار دارد.
  • Return: 'child'

سناریو ۲: تعیین گروه سنی یک نوزاد

  • Call: getAgeTitle('1402/11/10', "items":'2025-10-15 [14:30:00') {-> "details":(1402/11/10 {معادل "origin":2024-01-30)
  • {
  • Action:
  • "id":
1,
    "name": "THR" }, "destination": { "id": 2, "name": "MHD" }, "datetime": "1404/08/04 10:30", //
  1. checkDatetime تاریخ یکیشمسی را به میلادی تبدیل می‌کند.
  2. اختلاف روز بین 2024-01-30 و 2025-10-15 محاسبه می‌شود که تقریباً ۶۲۴ روز است.
  3. 624 کمتر از روزهای730 الگواست.
  4. (یک‌شنبه)
"vehicle":
    {
  • Return: /*'infant'
  • ...
*/ } } } ], "calculations": [ { "name": "اکونومی", "capacity": 150, "financial": { /* ... */ } }, { "name": "بیزنس", "capacity": 30, "financial": { /* ... */ } } ] } // خروجی مورد انتظار (در صورت موفقیت): { "main": [101, 102, 103, ...], // شناسه‌های چارترهای اصلی ایجاد شده برای هر تاریخ "calculations": [201, 202, 203, ...], // شناسه‌های کلاس‌های قیمتی "taxes": [301, 302, ...], // شناسه‌های مالیات‌ها "financial": [401, 402, ...] // شناسه‌های اطلاعات مالی }