FINAL v4 31 Aralık 2025

Muzibu Corporate Spots Sistemi

Kurumsal hesaplar için şarkı arası sesli spot yayın sistemi

Tüm Kararlar (Final)

Spot Atlanamaz

Zorunlu dinleme. Skip yok, seek yok.

Süre Limiti Yok

Admin ne yüklerse o çalar.

Max 30 MB

Dosya boyutu limiti.

localStorage Sayaç

Performans öncelikli. DB sorgusu yok.

Sıralı Çalma

Rotation: 1→2→3→1→2→3...

Çift Katmanlı Kontrol

Admin + Corporate ayrı ayrı açıp kapatabilir.

Veritabanı Yapısı

GÜNCELLEME: muzibu_corporate_accounts

Mevcut tabloya 4 kolon ekleniyor:

-- Ana şube ayarları (parent_id = null olanlar kullanır)
spot_enabled BOOLEAN DEFAULT TRUE,           -- Kurumsal: Spot sistemi açık mı?
spot_songs_between INT DEFAULT 10,           -- Kurumsal: Kaç şarkıda bir?
spot_current_index INT DEFAULT 0,            -- Rotation: Sıradaki spot

-- Her şube için (tüm kayıtlar kullanır)
spot_is_paused BOOLEAN DEFAULT FALSE         -- Şube: Durduruldu mu?

YENİ: muzibu_corporate_spots

Kolon Tip Açıklama
id BIGINT PK Auto increment
title VARCHAR(255) Spot başlığı
audio_path VARCHAR(500) Dosya yolu
duration INT Saniye (ffprobe)
file_size INT Bytes
position INT DEFAULT 0 Sıralama (drag-drop)
is_active BOOLEAN DEFAULT TRUE Admin: Spot aktif mi?
play_count INT DEFAULT 0 Toplam çalınma
timestamps TIMESTAMP created_at, updated_at

YENİ: muzibu_corporate_spot_plays

Kolon Tip Açıklama
id BIGINT PK Auto increment
spot_id BIGINT FK Hangi spot çaldı
corporate_account_id BIGINT FK Hangi şubede
user_id BIGINT FK NULL Kim dinledi
played_at TIMESTAMP Ne zaman
INDEX (corporate_account_id, played_at)
INDEX (spot_id, played_at)
INDEX (user_id)

Veritabanı Özeti

+4

Kolon (mevcut)

+2

Yeni Tablo

3

Index

Aktif/Pasif Mantığı (3 Katman)

Admin

Tüm sistemi kontrol

spots.is_active

Ana Şube

Kendi kurumunu kontrol

corporate.spot_enabled

Şube

Kendini kontrol

branch.spot_is_paused

Kontrol Matrisi

Admin Corporate Şube Sonuç
❌ Pasif - - ÇALMAZ (Sistem kapalı)
✓ Aktif ❌ Kapalı - ÇALMAZ (Kurum kapatmış)
✓ Aktif ✓ Açık ⏸ Durdurmuş ÇALMAZ (Şube durdurmuş)
✓ Aktif ✓ Açık ✓ Aktif ÇALAR ✓
Admin Kontrolü
  • • Her spot için ayrı ayrı
  • is_active = false
  • • Pasif spot hiçbir yerde çalmaz
  • • Rotation'dan çıkar
Corporate Kontrolü
  • • Tüm kurum için tek ayar
  • spot_enabled = false
  • • Tüm şubelerde spot durur
  • • Sadece ana şube değiştirebilir
Şube Kontrolü
  • • Her şube kendisi için
  • spot_is_paused = true
  • • Sadece o şubede durur
  • • Diğer şubeler etkilenmez

Admin Panel

Menü Konumu

Admin → Muzibu Corporate Spots

Spot Listesi Sayfası

Corporate Spots

Kurumsal hesaplarda çalacak spotları yönetin

5

Toplam

3

Aktif

2

Pasif

2.4K

Toplam Çalınma

Sıra Spot Süre Çalınma Durum İşlem
1

Yılbaşı Kampanyası

1.2 MB • 30 Ara 2025

0:45 856
2

Happy Hour Duyurusu

0.8 MB • 28 Ara 2025

0:30 642
3

Eski Kampanya

0.9 MB • 15 Ara 2025

0:35 421
Sıralamayı değiştirmek için sürükle-bırak yapın. Sadece aktif spotlar rotation'a dahildir.

Spot Yükleme / Düzenleme

Dosyayı sürükle veya tıkla

MP3, WAV, M4A • Max 30 MB

Yılbaşı Kampanyası

kampanya.mp3

0:00 0:45

Süre

0:45

Boyut

1.2 MB

Format

MP3

Frontend (Kullanıcı Arayüzü)

Kurumsal Panel: Spot Ayarları (Ana Şube)

Spot Ayarları

Tüm şubeleriniz için spot ayarlarını buradan yönetin

Spot Sistemi

Tüm şubelerde spotların çalmasını aç/kapat

Açık
Spot Aralığı

Kaç şarkıdan sonra spot çalsın?

10
5 şarkı 20 şarkı

Şarkılar en az 30 saniye dinlendiğinde sayılır

3

Aktif Spot

1,245

Bu Ay

5

Aktif Şube

Şube: Sidebar Widget

Spot Aktif

Spotlar

Aktif

Açık
Sonraki spot: 3 şarkı sonra

Spot Durdurulmuş

Spotlar

Durduruldu

Durdu

Spotlar çalmıyor

Player: Spot Çalarken

Normal Şarkı

Hayal Kahvesi

Sezen Aksu

Spot Çalarken

SPOT

Yılbaşı Kampanyası

Şirket Duyurusu

0:27
Atlanamaz

İstatistik Sayfaları

Admin: Spot İstatistikleri

2,456

Toplam Çalınma

847

Bu Hafta

156

Bugün

12

Aktif Kurum

Spot Bazlı Dağılım
1
Yılbaşı Kampanyası 856
2
Happy Hour 642
Kurum Bazlı (Top 5)
Başkan Holding 524
ABC Restoranlar 412
XYZ Cafe Zinciri 356

Kurumsal: Şube İstatistikleri

524

Toplam

187

Bu Hafta

42

Bugün

Şube Bazlı Dağılım
Şube Durum Bugün Bu Hafta Toplam
Merkez (Ana) Aktif 18 72 215
Ankara Aktif 12 58 156
İzmir Durduruldu 0 24 89
Bursa Aktif 12 33 64

API Endpoints

Admin API

GET/api/admin/corporate-spots
POST/api/admin/corporate-spots
PUT/api/admin/corporate-spots/{id}
DELETE/api/admin/corporate-spots/{id}
POST/api/admin/corporate-spots/reorder
GET/api/admin/corporate-spots/stats

Corporate API

GET/api/corporate/spot-settings
PUT/api/corporate/spot-settings
GET/api/corporate/spot-stats
GET/api/corporate/branch-spot-statuses

Player API

GET/api/spot/init← Sayfa açılışı
GET/api/spot/next← Sıradaki spot
POST/api/spot/played← Spot çalındı log
POST/api/spot/pause← Şube durdur
POST/api/spot/resume← Şube devam

Oluşturulacak Dosyalar

Backend

// Migrations

Modules/Muzibu/database/migrations/tenant/

├── add_spot_fields_to_corporate_accounts.php

├── create_corporate_spots_table.php

└── create_corporate_spot_plays_table.php

// Models

Modules/Muzibu/app/Models/

├── CorporateSpot.php

└── CorporateSpotPlay.php

// Controllers

Modules/Muzibu/app/Http/Controllers/

├── Admin/CorporateSpotController.php

└── Api/SpotApiController.php

// Livewire

Modules/Muzibu/app/Http/Livewire/Admin/

└── CorporateSpotManagement.php

// Services

Modules/Muzibu/app/Services/

└── CorporateSpotService.php

Frontend

// Admin Views

resources/views/admin/muzibu/spots/

├── index.blade.php

├── manage.blade.php

└── stats.blade.php

// Frontend Views

resources/views/themes/muzibu/

├── corporate/spot-settings.blade.php

├── corporate/spot-stats.blade.php

└── components/

├── spot-widget.blade.php

└── spot-player.blade.php

// JavaScript

public/themes/muzibu/js/

├── muzibu-store.js (güncelle)

└── player/features/

└── corporate-spot.js (yeni)

Geliştirme Sırası

1

Veritabanı

3 migration + 2 model + MuzibuCorporateAccount güncelle

2

Admin Panel

Liste + Form + Drag-drop + Dosya yükleme + İstatistik

3

Kurumsal Panel

Ayarlar sayfası + İstatistik sayfası

4

Şube Widget

Sidebar component + Durdur/Devam

5

Player Entegrasyonu

JS logic + Spot çalma UI + localStorage sayaç

6

Test & Deploy

Migration + Manuel test + npm run prod + Cache temizle