Skip to main content

PHP SDK

bailaya/api-php არის Composer პაკეტი PHP 8.1+-ისთვის.

ინსტალაცია

composer require bailaya/api-php

კონფიგურაცია

use BailaYa\Client;

$client = new Client([
'studioId' => 'your-studio-id',
// 'baseUrl' => 'https://www.bailaya.com/api', // ნაგულისხმევი
]);

კლიენტი ასევე კითხულობს BAILAYA_STUDIO_ID-ს .env-იდან (vlucas/phpdotenv-ის მეშვეობით), თუ studioId არ არის გადაცემული.

მეთოდები

// სტუდიის პროფილი
$profile = $client->getStudioProfile();
echo $profile->name;
echo $profile->description['en']; // ლოკალიზებული

// ინსტრუქტორები
$instructors = $client->getInstructors();
foreach ($instructors as $instr) {
echo $instr->name . ' ' . $instr->lastname;
echo $instr->bio['es'] ?? '';
}

// გაკვეთილები (მომდევნო 7 დღე)
$classes = $client->getClasses();
foreach ($classes as $cls) {
echo $cls->name . ' on ' . $cls->date->format('Y-m-d');
echo ' Price: ' . ($cls->price ?? 'Free');
}

// გაკვეთილები ტიპის მიხედვით
$salsa = $client->getClassesByType('Salsa');

// ღონისძიებები
$events = $client->getEvents();

// პაკეტები
$packages = $client->getPackages();
foreach ($packages as $pkg) {
echo $pkg->name . ' — ' . $pkg->price . ' ' . $pkg->currency;
// შეძენის URL: https://www.bailaya.com/packages/{$pkg->id}
}

// კერძო გაკვეთილების ინსტრუქტორები
$instructors = $client->getPrivateLessonInstructors();
foreach ($instructors as $instr) {
foreach ($instr->pricing as $entry) {
echo $entry->durationMins . ' min — ' . $entry->price . ' ' . $entry->currency;
}
// ჯავშნის URL: https://www.bailaya.com/en/book/private-lesson/{$instr->id}
}

DTO-ები

ყველა მეთოდი აბრუნებს ტიპიზირებულ DTO ობიექტებს. Nullable ველები (price, capacity, room, allowPackages, description) შეიძლება იყოს null — ყოველთვის შეამოწმეთ გამოყენებამდე.

$cls->price;        // float|int|null
$cls->capacity; // ?int
$cls->room; // ?string
$cls->allowPackages; // ?bool
$cls->description; // ?array<string,string>

ლოგირება

გადაეცით PSR-3 ლოგერი კონსტრუქტორის მეორე არგუმენტად:

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$logger = new Logger('bailaya');
$logger->pushHandler(new StreamHandler('php://stderr'));

$client = new Client(['studioId' => 'studio_abc'], $logger);