Initial commit: Animexe Laravel platform
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Achievement;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class AchievementSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$achievements = [
|
||||
['key'=>'first_login', 'title'=>'Hoş Geldin!', 'description'=>'İlk kez giriş yaptın', 'icon'=>'bi-door-open', 'color'=>'#79c0ff', 'condition_type'=>'first_login', 'condition_value'=>1],
|
||||
['key'=>'ep_1', 'title'=>'İzlemeye Başladım', 'description'=>'İlk bölümü %70 izledin', 'icon'=>'bi-play-circle', 'color'=>'#3fb950', 'condition_type'=>'episodes_watched', 'condition_value'=>1],
|
||||
['key'=>'ep_10', 'title'=>'Anime Meraklısı', 'description'=>'10 bölüm izledin', 'icon'=>'bi-collection-play', 'color'=>'#3fb950', 'condition_type'=>'episodes_watched', 'condition_value'=>10],
|
||||
['key'=>'ep_50', 'title'=>'Gerçek Otaku', 'description'=>'50 bölüm izledin', 'icon'=>'bi-trophy', 'color'=>'#f0883e', 'condition_type'=>'episodes_watched', 'condition_value'=>50],
|
||||
['key'=>'ep_100', 'title'=>'Efsane İzleyici', 'description'=>'100 bölüm izledin', 'icon'=>'bi-trophy-fill', 'color'=>'#ffd700', 'condition_type'=>'episodes_watched', 'condition_value'=>100],
|
||||
['key'=>'ep_500', 'title'=>'Ölümsüz Otaku', 'description'=>'500 bölüm izledin', 'icon'=>'bi-stars', 'color'=>'#a371f7', 'condition_type'=>'episodes_watched', 'condition_value'=>500],
|
||||
['key'=>'hours_10', 'title'=>'10 Saatlik Mara', 'description'=>'10 saat anime izledin', 'icon'=>'bi-clock-fill', 'color'=>'#79c0ff', 'condition_type'=>'hours_watched', 'condition_value'=>10],
|
||||
['key'=>'hours_100', 'title'=>'100 Saat Kulübü', 'description'=>'100 saat anime izledin', 'icon'=>'bi-alarm-fill', 'color'=>'#e84393', 'condition_type'=>'hours_watched', 'condition_value'=>100],
|
||||
['key'=>'watchlist_5', 'title'=>'Listeci', 'description'=>'5 anime listeye ekledin', 'icon'=>'bi-bookmark-fill', 'color'=>'#79c0ff', 'condition_type'=>'watchlist_count', 'condition_value'=>5],
|
||||
['key'=>'watchlist_20', 'title'=>'Liste Ustası', 'description'=>'20 anime listeye ekledin', 'icon'=>'bi-bookmarks-fill', 'color'=>'#a371f7', 'condition_type'=>'watchlist_count', 'condition_value'=>20],
|
||||
['key'=>'rated_1', 'title'=>'Eleştirmen', 'description'=>'İlk anime puanını verdin', 'icon'=>'bi-star-fill', 'color'=>'#ffd700', 'condition_type'=>'anime_rated', 'condition_value'=>1],
|
||||
['key'=>'rated_10', 'title'=>'Puan Makinesi', 'description'=>'10 animei puanladın', 'icon'=>'bi-star-half', 'color'=>'#ffd700', 'condition_type'=>'anime_rated', 'condition_value'=>10],
|
||||
['key'=>'request_1', 'title'=>'Talep Eden', 'description'=>'Anime isteği gönderdin', 'icon'=>'bi-plus-circle-fill','color'=>'#3fb950', 'condition_type'=>'request_sent', 'condition_value'=>1],
|
||||
];
|
||||
|
||||
foreach ($achievements as $ach) {
|
||||
Achievement::firstOrCreate(['key' => $ach['key']], $ach);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\MembershipPlan;
|
||||
use App\Models\PermissionSetting;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// Admin kullanıcısı
|
||||
User::updateOrCreate(
|
||||
['email' => 'admin@animexe.com'],
|
||||
[
|
||||
'name' => 'Admin',
|
||||
'password' => Hash::make('admin123'),
|
||||
'role' => 'admin',
|
||||
]
|
||||
);
|
||||
|
||||
// Global izin ayarları
|
||||
$permissions = [
|
||||
['key' => 'can_watch', 'label' => 'Video İzleme', 'required_membership' => 'free', 'description' => 'Bölümleri izleyebilme'],
|
||||
['key' => 'can_comment', 'label' => 'Yorum Yapma', 'required_membership' => 'free', 'description' => 'Anime ve bölümlere yorum yapabilme'],
|
||||
['key' => 'can_rate', 'label' => 'Puanlama', 'required_membership' => 'free', 'description' => 'Anime puanlayabilme'],
|
||||
['key' => 'can_watchlist', 'label' => 'İzleme Listesi', 'required_membership' => 'free', 'description' => 'İzleme listesine ekleyebilme'],
|
||||
['key' => 'watch_hd', 'label' => '1080p İzleme', 'required_membership' => 'premium', 'description' => 'HD kalitede izleyebilme'],
|
||||
['key' => 'watch_4k', 'label' => '4K İzleme', 'required_membership' => 'premium', 'description' => '4K kalitede izleyebilme'],
|
||||
['key' => 'no_ads', 'label' => 'Reklamsız İzleme', 'required_membership' => 'premium', 'description' => 'Reklam gösterilmez'],
|
||||
['key' => 'early_access', 'label' => 'Erken Erişim', 'required_membership' => 'premium', 'description' => 'Yeni bölümlere erken erişim'],
|
||||
['key' => 'download', 'label' => 'İndirme', 'required_membership' => 'premium', 'description' => 'Bölümleri indirebilme'],
|
||||
];
|
||||
|
||||
foreach ($permissions as $perm) {
|
||||
PermissionSetting::updateOrCreate(['key' => $perm['key']], $perm);
|
||||
}
|
||||
|
||||
// Üyelik planları
|
||||
$plans = [
|
||||
['name' => 'Aylık Premium', 'slug' => 'aylik-premium', 'price' => 49.99, 'duration_days' => 30,
|
||||
'features' => ['Reklamsız izleme', '1080p HD', 'Sınırsız bölüm', 'Erken erişim'], 'is_active' => true, 'sort_order' => 1],
|
||||
['name' => '3 Aylık Premium', 'slug' => '3-aylik-premium', 'price' => 129.99, 'duration_days' => 90,
|
||||
'features' => ['Reklamsız izleme', '1080p HD', '4K kalite', 'Erken erişim', 'İndirme'], 'is_active' => true, 'sort_order' => 2],
|
||||
['name' => 'Yıllık Premium', 'slug' => 'yillik-premium', 'price' => 399.99, 'duration_days' => 365,
|
||||
'features' => ['Reklamsız izleme', '1080p HD', '4K kalite', 'Erken erişim', 'İndirme', 'Öncelikli destek'], 'is_active' => true, 'sort_order' => 3],
|
||||
];
|
||||
|
||||
foreach ($plans as $plan) {
|
||||
MembershipPlan::updateOrCreate(['slug' => $plan['slug']], $plan);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user