<?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);
        }
    }
}
