<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\PermissionGroup;

class PermissionGroupSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // Super Admin - Tüm yetkiler
        PermissionGroup::create([
            'name' => 'Süper Yönetici',
            'description' => 'Tüm sistem yetkilerine sahip',
            'permissions' => [
                'dashboard' => [
                    'read' => true,
                ],
                'deposits' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                    'approve' => true,
                    'decline' => true,
                ],
                'withdrawals' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                    'approve' => true,
                    'decline' => true,
                ],
                'users' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'permissions' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'finance_groups' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'bank_accounts' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'crypto_accounts' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'finance_users' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'settings' => [
                    'read' => true,
                    'update' => true,
                ],
                'sites' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => true,
                ],
                'payment_popups' => [
                    'read' => true,
                    'update' => true,
                ],
                'reports' => [
                    'read' => true,
                    'export' => true,
                ],
            ],
        ]);

        // Yönetici - Çoğu yetki
        PermissionGroup::create([
            'name' => 'Yönetici',
            'description' => 'İşlem onaylama ve raporlama yetkilerine sahip',
            'permissions' => [
                'dashboard' => [
                    'read' => true,
                ],
                'deposits' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                    'approve' => true,
                    'decline' => true,
                ],
                'withdrawals' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                    'approve' => true,
                    'decline' => true,
                ],
                'users' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'permissions' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'finance_groups' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                ],
                'bank_accounts' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                ],
                'crypto_accounts' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                ],
                'finance_users' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                ],
                'settings' => [
                    'read' => true,
                    'update' => false,
                ],
                'sites' => [
                    'read' => true,
                    'create' => true,
                    'update' => true,
                    'delete' => false,
                ],
                'payment_popups' => [
                    'read' => true,
                    'update' => true,
                ],
                'reports' => [
                    'read' => true,
                    'export' => true,
                ],
            ],
        ]);

        // Muhasebe - Sadece görüntüleme ve raporlama
        PermissionGroup::create([
            'name' => 'Muhasebe',
            'description' => 'Görüntüleme ve raporlama yetkilerine sahip',
            'permissions' => [
                'dashboard' => [
                    'read' => true,
                ],
                'deposits' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                    'approve' => false,
                    'decline' => false,
                ],
                'withdrawals' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                    'approve' => false,
                    'decline' => false,
                ],
                'users' => [
                    'read' => false,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'permissions' => [
                    'read' => false,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'finance_groups' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'bank_accounts' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'crypto_accounts' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'finance_users' => [
                    'read' => true,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'settings' => [
                    'read' => false,
                    'update' => false,
                ],
                'sites' => [
                    'read' => false,
                    'create' => false,
                    'update' => false,
                    'delete' => false,
                ],
                'payment_popups' => [
                    'read' => false,
                    'update' => false,
                ],
                'reports' => [
                    'read' => true,
                    'export' => true,
                ],
            ],
        ]);
    }
}
