Ana içeriğe geç

Version Docs Updated

Amaç

Bu uç nokta (endpoint), belirli bir aracın seçilen tarih ve saat aralığında kiralanabilir olup olmadığını kontrol eder ve güncel fiyatlandırmayı hesaplar.

🚗 Müsaitlik Sorgulama Endpointi

Müsaitlik sorgulama, rezervasyon sürecinin ilk ve en kritik adımıdır. Util::has_overlap() ve PricingEngine sınıflarını kullanarak gerçek zamanlı sonuç döner.


📍 Endpoint Bilgileri

  • URL: /wp-json/mhm-rentiva/v1/availability
  • Metot: POST
  • Yetki: Public (Eğer admin/vendor arayüzü değilse)

📥 İstek Parametreleri (JSON Gövdesi)

ParametreTipZorunluAçıklama
vehicle_idintEvetKontrol edilecek aracın ID'si.
pickup_datestringEvetAlış tarihi (YYYY-MM-DD).
pickup_timestringEvetAlış saati (HH:MM).
return_datestringEvetDönüş tarihi (YYYY-MM-DD).
return_timestringEvetDönüş saati (HH:MM).
location_idintHayırTeslimat konumu (Fiyatı etkileyebilir).

📤 Başarılı Yanıt Örneği

{
"success": true,
"data": {
"available": true,
"pricing": {
"base_price": 1200.00,
"service_fee": 150.00,
"total_price": 1350.00,
"currency": "TRY"
},
"duration": {
"days": 3,
"hours": 0
}
}
}

🛡️ Güvenlik ve Doğrulama

  1. Tarih Sıralaması: Dönüş tarihi, alış tarihinden önce olamaz.
  2. Saat Kontrolü: Alış saati, minimum rezervasyon süresi kurallarına uygun olmalıdır.
  3. RateLimiter: Aynı IP'den gelen saniyede çoklu sorgular otomatik olarak yavaşlatılır.
  4. Sanitizasyon: Tüm girdi verileri Sanitizer::absint() ve sanitize_text_field() ile temizlenir.

❌ Hata Durumları

KodMesajNeden
400INVALID_DATE_RANGEAlış/Dönüş tarihleri mantıksız.
404VEHICLE_NOT_FOUNDBelirtilen ID'ye sahip araç bulunamadı.
409VEHICLE_NOT_AVAILABLEAraç belirtilen tarihlerde zaten dolu.
429TOO_MANY_REQUESTSRate limit aşıldı.

Bölüm Sonu Özeti

  • availability endpointi, hem müsaitlik hem de fiyat bilgisi sağlar.
  • Util::has_overlap() ile çakışmaları saniyeler içinde tespit eder.
  • Frontend takvimlerinde ve rezervasyon formlarında reaktif güncellemeler için kullanılır.

Değişiklik Günlüğü

TarihSürümNot
19.03.20264.21.2JSON istek/yanıt şeması ve hata kodları detaylandırıldı.