Bu doküman Mac'teki Claude'a verilecek başlangıç prompt'udur. Tüm API'ler, auth sistemi, stream yapısı, iş mantığı ve teknik detaylar dahildir.
mztest.muzibu.comYerel Mac
| Konu | ATLAS | NOVA |
|---|---|---|
| API endpoint değişiklikleri | Oluşturur / düzeltir | İhtiyaç bildirir |
| Auth & Token | Backend mantığı | Token storage & refresh |
| HLS Stream | URL generation, key serve | HLS.js player, decode |
| Veritabanı | Migration, model | Dokunmaz |
| React Native kod | Dokunmaz | Tüm UI & navigation |
| Test | API test (curl) | Device test (Expo Go) |
| Katman | Teknoloji | Versiyon/Not |
|---|---|---|
| Framework | React Native + Expo | SDK 52+, Managed workflow |
| Routing | Expo Router | File-based routing (app/ dizini) |
| Dil | TypeScript | Strict mode |
| State | Zustand | Lightweight, persist middleware |
| Data Fetching | @tanstack/react-query | Cache, refetch, mutation |
| Styling | NativeWind (Tailwind) | v4+ |
| Auth Token | expo-secure-store | Keychain / Keystore |
| Audio Player | expo-av veya react-native-track-player | Background playback desteği |
| HLS | Native HLS desteği | iOS native, Android ExoPlayer |
| HTTP | axios | Interceptor ile token injection |
| Storage | @react-native-async-storage | Offline cache |
| Icons | @expo/vector-icons | FontAwesome 6 |
| Animations | react-native-reanimated | Gesture handler ile |
Authorization: Bearer {token} header'ı
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| POST | /api/auth/login | - | Giriş yap |
| POST | /api/auth/register | - | Kayıt ol |
| POST | /api/auth/check-email | - | Email müsait mi? |
| POST | /api/auth/logout | sanctum | Çıkış |
| GET | /api/auth/me | - | Auth durumu |
| POST | /api/auth/forgot-password | - | Şifre sıfırlama linki |
| POST | /api/auth/reset-password | - | Şifre sıfırla |
csrf_token dönüyor.| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| POST | /api/v1/auth/login | - | Login + Bearer token al |
| POST | /api/v1/auth/register | - | Register + Bearer token al |
| POST | /api/v1/auth/logout | sanctum | Logout + token iptal |
| GET | /api/v1/auth/me | sanctum | Kullanıcı bilgisi |
| Method | Endpoint | Açıklama |
|---|---|---|
| GET | /api/v1/tokens | Token listesi |
| POST | /api/v1/tokens/refresh | Token yenile → yeni token döner |
| DELETE | /api/v1/tokens/{id} | Tek token iptal |
| DELETE | /api/v1/tokens | Tüm tokenları iptal (mevcut hariç) |
| GET | /api/v1/tokens/validate | Token geçerli mi? |
| GET | /api/v1/tokens/current | Mevcut token bilgisi |
https://mztest.muzibu.com/api/muzibu/, Genel API'ler /api/v1/Authorization: Bearer {token}
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| GET | /api/muzibu/songs/recent | sanctum | Son dinlenenler (kişiye özel, 2dk cache) |
| GET | /api/muzibu/songs/popular | - | Popüler şarkılar (30dk cache) |
| GET | /api/muzibu/songs/last-played | - | Son dinlenen (preload) |
| GET | /api/muzibu/songs/{id} | - | Şarkı detayı |
| GET | /api/muzibu/songs/{id}/playlists | sanctum | Hangi playlistlerde |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| GET | /api/muzibu/albums | - | Tüm albümler (paginated) |
| GET | /api/muzibu/albums/new-releases | - | Yeni çıkışlar |
| GET | /api/muzibu/albums/{id} | - | Albüm detayı + şarkıları |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| GET | /api/muzibu/artists | - | Tüm sanatçılar |
| GET | /api/muzibu/artists/{id} | - | Sanatçı detayı |
| GET | /api/muzibu/artists/{id}/albums | - | Sanatçının albümleri |
| GET | /api/muzibu/artists/{id}/songs | - | Sanatçının şarkıları |
| Method | Endpoint | Açıklama |
|---|---|---|
| GET | /api/muzibu/genres | Tüm türler |
| GET | /api/muzibu/genres/{id}/songs | Tür şarkıları |
| GET | /api/muzibu/sectors | Tüm sektörler |
| GET | /api/muzibu/sectors/{id}/playlists | Sektör playlistleri |
| GET | /api/muzibu/sectors/{id}/songs | Sektör şarkıları |
| GET | /api/muzibu/radios | Tüm radyolar |
| GET | /api/muzibu/radios/{id}/songs | Radyo şarkıları |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| GET | /api/muzibu/playlists | - | Tüm playlistler (paginated) |
| GET | /api/muzibu/playlists/featured | - | Öne çıkan playlistler |
| GET | /api/muzibu/playlists/{id} | - | Playlist detayı + şarkılar |
| GET | /api/muzibu/playlists/my-playlists | sanctum | Kullanıcının playlistleri |
| POST | /api/muzibu/playlists/quick-create | sanctum | Hızlı playlist oluştur |
| POST | /api/muzibu/playlists/{id}/add-song | sanctum | Şarkı ekle |
| POST | /api/muzibu/playlists/{id}/add-album | sanctum | Albüm ekle |
| DELETE | /api/muzibu/playlists/{id}/remove-song/{songId} | sanctum | Şarkı çıkar |
| PUT | /api/muzibu/playlists/{id}/reorder | sanctum | Sıralama güncelle |
| PUT | /api/muzibu/playlists/{id} | sanctum | Playlist düzenle |
| DELETE | /api/muzibu/playlists/{id} | sanctum | Playlist sil |
| POST | /api/muzibu/playlists/clone | sanctum | Playlist kopyala |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| POST | /api/favorites/toggle | sanctum | Favori ekle/çıkar (toggle) |
| GET | /api/favorites/list | sanctum | Favori listesi (id array) |
| GET | /api/favorites/check | sanctum | Tek item favori mi? |
| GET | /api/favorites/my-favorites | sanctum | Detaylı favori listesi (paginated) |
| Method | Endpoint | Açıklama |
|---|---|---|
| GET | /api/muzibu/queue/initial | Sayfa açılışında ilk kuyruk |
| POST | /api/muzibu/queue/refill | Context-based sonsuz kuyruk yenileme |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| POST | /api/muzibu/ai/playlist/create | sanctum | AI ile playlist oluştur (max 20/gün) |
| POST | /api/muzibu/ai/favorite/add | sanctum | AI ile favorilere ekle |
| POST | /api/muzibu/ai/play/{type}/{id} | sanctum + Premium | AI ile oynat |
| POST | /api/muzibu/ai/queue/add | sanctum + Premium | AI ile kuyruğa ekle |
| Method | Endpoint | Açıklama |
|---|---|---|
| GET | /api/v1/profile | Profil bilgisi |
| PUT | /api/v1/profile | Profil güncelle (name, email, phone, bio) |
| POST | /api/v1/profile/change-password | Şifre değiştir |
| POST | /api/v1/profile/avatar | Avatar yükle (max 2MB, JPEG/PNG/GIF) |
| DELETE | /api/v1/profile/avatar | Avatar sil |
| DELETE | /api/v1/profile/account | Hesap sil (şifre gerekli, soft delete) |
| Method | Endpoint | Params | Açıklama |
|---|---|---|---|
| GET | /api/muzibu/listening-history | ?period=today|week|month|all&device=mobile|desktop&per_page=20 | Dinleme geçmişi (paginated) |
| GET | /api/muzibu/stats | ?period=today|week|month|all | Kullanıcı istatistikleri |
| Method | Endpoint | Auth | Açıklama |
|---|---|---|---|
| POST | /api/muzibu/device-profile | - | Cihaz profili kaydet |
| GET | /api/muzibu/device-profiles | - | Cihaz profilleri listele |
| DELETE | /api/muzibu/device-profiles/{id} | sanctum | Cihaz sil |
Figtree — Google Fonts, geometric humanist sans-serif. Expo'da expo-google-fonts ile yükle.
16px, küçük kartlar 8px, butonlar full8px, Sanatçı 50% (daire)field.tr kullanitem.title?.tr || item.title?.en || 'Bilinmeyen'_ = encrypted data, __ = key, ___ = timestamp
auth:sanctum,web middleware kullanır.Authorization: Bearer {token} göndermek yeterli.
staleTime ayarlarını buna göre yapılandır.
{ data: [...], current_page, last_page, per_page, total }
#EXT-X-KEY:URI= satırı key URL'i içerir. Ek auth header gerekmez — key URL signed.
https://mztest.muzibu.comhttps://muzibu.com