8.3 KiB
8.3 KiB
ExtraNetWork API — Teknik Özet
Genel Bilgiler
| Özellik | Değer |
|---|---|
| Framework | Laravel Lumen 5.8 |
| PHP | >= 7.1.3 |
| App Versiyonu | 1.5.22 |
| Veritabanı | MySQL (utf8mb4, host: mysql-master) |
| Queue Driver | Database (jobs tablosu) |
| Mail Driver | SMTP — Gmail (noreply@extranetwork.com) |
Mimari
app/
├── Http/Controllers/ → 86 Controller
├── Core/
│ ├── Service/ → 142 Service
│ ├── Repository/ → 176 Repository
│ └── Validator/ → 132 Validator
├── Models/ → 196 Model
├── Jobs/ → 6 Job
├── Events/ → 2 Event
├── Listeners/ → 1 Listener
├── Channels/ → OneSignal push
└── Http/Middleware/ → 11 Middleware
Katmanlı mimari: Controller → Service → Repository → Model
Servisler & URL'ler
| Servis | URL |
|---|---|
| API | https://api.extranetwork.com |
| Web | https://www.extranetwork.com |
| Client App | https://app.extranetwork.com |
| Booking Engine | https://be.extranetwork.com |
| Image CDN | https://cdn.extranetwork.com |
Veritabanı (100+ tablo)
Ana Tablolar
| Grup | Tablolar |
|---|---|
| Kullanıcı | user, permission, permission_group, user_property_mapping |
| Mülk (Property) | property, property_type, property_chain, property_brand, property_contact, property_executive |
| Oda | property_room, property_room_type, property_room_bed, property_room_view_type |
| Fotoğraf | property_photo, property_photo_category, property_room_photo_mapping |
| İçerik | property_content, property_content_category, property_fact, property_fact_mapping |
| Fiyat & Oran | property_room_rate, property_room_rate_mapping, property_room_rate_channel_mapping |
| Kanal | property_channel, property_channel_mapping, property_channel_category |
| Rezervasyon | booking, booking_contact, booking_room_pax, booking_addon, booking_payment |
| Politika | property_cancellation_policy, property_pricing_policy_adult, property_pricing_policy_child |
| Web | property_web, property_web_content, property_web_menu, property_web_meta_tag |
| Diğer | property_promotion, property_coupon, property_addon, property_award_certificate, site_config |
Modeller & İlişkiler
Property (Ana Model)
Property
├── hasMany → PropertyPhoto, PropertyRoom, PropertyExecutive, PropertyUser
├── hasOne → PropertyContact, PropertyWeb, PropertyBrand, PropertyChain
└── belongsTo → PropertyType, Destination
Booking
Booking
├── hasMany → BookingRoomPax, BookingAddon, BookingPayment
└── hasOne → BookingContact
Offer
Offer
├── hasMany → OfferContactMapping, OfferFactMapping
└── hasOne → OfferPaymentType
Controller Grupları
Auth & Kullanıcı
AuthController— login, refresh-token, logoutUserController— CRUD, şifre sıfırlama, rol yönetimi
Property Yönetimi
PropertyController— CRUD, dashboard, raporlarPropertyPhotoController— yükleme, sıralama, yayınlamaPropertyContactController,PropertyExecutiveController,PropertyBrandControllerPropertyRoomController,PropertyRoomBedController,PropertyRoomTypeController
Fiyat & Oran
PropertyRoomRateController,PropertyRoomRateMappingControllerPropertyRoomRateChannelMappingControllerPropertyQuickPricingController,PropertyPersonPricingPolicyControllerPropertyOfferController,PropertyNonrefundableControllerPropertyCancellationPolicyController
Kanal Yönetimi
PropertyChannelController,PropertyChannelMappingControllerPropertyChannelGroupController,PropertyChannelCategoryControllerCompetitorPriceAnalysisController
İçerik & Web
PropertyContentController,PropertyFactControllerPropertyWebController,PropertyWebContentController,PropertyWebMenuControllerPropertyPlaceController,PropertyAdditionalInfoController
Rezervasyon & Ödeme
PropertyBookingControllerPaymentController,PaymentLinkControllerPropertyBookingTicketController
Özel
AIController— OpenAI entegrasyonuReputationManagementController— Review/yorum yönetimiPropertyAwardCertificatesControllerExportPdfController,DashboardPlusServicecontrollers
Middleware
| Middleware | Görev |
|---|---|
JwtMiddleware |
JWT token doğrulama |
CorsMiddleware |
CORS başlıkları |
LanguageSettingMiddleware |
Dil seçimi |
PropertyMiddleware |
Property context |
UserRoutePermissionAuthorize |
RBAC yetki kontrolü |
BookingEngineTokenMiddleware |
Booking engine auth |
MyWebTokenMiddleware |
MyWeb auth |
CheckPropertyChannelConnectionMiddleware |
Kanal bağlantı doğrulama |
ContentWizardMiddleware |
İçerik sihirbazı akışı |
Jobs (Queue)
| Job | Görev |
|---|---|
PropertyReviewServiceJob |
Review senkronizasyonu |
PropertyReviewAnalyzeServiceJob |
Review analizi |
PropertyCatalogServiceJob |
Katalog güncellemeleri |
SlackLogJob |
Slack bildirim logları |
Route Yapısı
POST /app/v1/auth/login
POST /app/v1/auth/refresh-token
POST /app/v1/user/register
POST /app/v1/logout
GET /property-comparison/{weekKey}
POST /web/check-domain
[Protected - /app/v1]
├── /property/** → Property CRUD & yönetim
├── /property-room/** → Oda yönetimi
├── /property-rate/** → Fiyat & oran
├── /property-channel/** → Kanal yönetimi
├── /booking/** → Rezervasyon
├── /payment/** → Ödeme
├── /property-web/** → Web içerik
└── /user/** → Kullanıcı yönetimi
Temel Paketler
| Paket | Sürüm | Kullanım |
|---|---|---|
laravel/lumen-framework |
5.8 | Framework |
firebase/php-jwt |
^5.0 | JWT auth |
stripe/stripe-php |
^7.66 | Ödeme |
google/cloud-vision |
^0.24 | Görsel analiz |
maatwebsite/excel |
^3.1 | Excel export |
barryvdh/laravel-dompdf |
^0.8.7 | PDF üretimi |
intervention/image |
^2.5 | Görsel işleme |
predis/predis |
^1.1 | Redis |
ramsey/uuid |
^4.1 | UUID üretimi |
symfony/translation |
4.4.1 | Çeviri desteği |
Dil Desteği
config/ altında hazır dil paketi dosyaları:
language-pack-en.php— İngilizcelanguage-pack-de.php— Almancalanguage-pack-tr.php— Türkçe
Entegrasyonlar
- Stripe — Ödeme işlemleri
- OpenAI — AI özellikler (
AIController) - Google Cloud Vision — Görsel analiz
- OneSignal — Push bildirim (
OneSignalChannel) - Slack — Log bildirimleri (
SlackLogJob) - Redis — Cache & queue
- Gmail SMTP — Mail gönderimi