<?php

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class NewGroupPermissionSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //seed permission
        $permissions = [

            //Report (existing)
            'view_report_24h_wht_msg_sms|report_get_sms_log_new_24h_wht_msg' => 'View 24h SMS Report Without Message',

        ];

        foreach ($permissions as $key => $value) {
            $p_name = explode('|', $key)[0];
            $p_route = explode('|', $key)[1];
            $existingPermission = DB::table('permissions')->where('name', $p_name)->first();
            if(empty($existingPermission)) {
                DB::table('permissions')->insert([
                    'name' => $p_name,
                    'description' => $value,
                    'route_name' => $p_route,
                    'created_at' => date('Y-m-d H:i:s'),
                    'updated_at' => date('Y-m-d H:i:s'),
                ]);
            }
        }

        //seed admin group
        $existingGroup = DB::table('groups')->where('name', '24h report wht-msg')->first();
        if(empty($existingGroup)) {
            $existingGroupId = DB::table('groups')->insertGetId([
                'name' => '24h report wht-msg',
                'description' => '24h report wht-msg',
                'created_at' => date('Y-m-d H:i:s'),
                'updated_at' => date('Y-m-d H:i:s'),
            ]);
            $existingGroup = DB::table('groups')->find($existingGroupId);
        }

        //add all permissions to group
        foreach (DB::table('permissions')->where('name','like','view_report_24h_wht_msg_sms%')->orWhere('name','like','view_sms_dashboard%')->get() as $perm) {
            $existingGP = DB::table('group_permission')
                ->where('group_id', $existingGroup->id)
                ->where('permission_id', $perm->id)
                ->first();
            if(empty($existingGP)) {
                DB::table('group_permission')->insert([
                    'group_id' => $existingGroup->id,
                    'permission_id' => $perm->id,
                ]);
            }
        }

    }
}
