<?php

namespace App\Policies;

use App\StanbicUser;

class AuthPolicy
{
    private function is_stanbic_reseller($user) {
        return $user->role->name==='reseller' && $user->username==='stanbic admin';
    }

    public function manage_groups($user) {
        return $this->is_stanbic_reseller($user);
    }

    public function manage_stanbic_users($user) {
        return $this->is_stanbic_reseller($user);
    }

    public function view_dashboard($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', '%_dashboard')->first());
        }
        return true;
    }

    public function view_payment($user) {

        $stanbicUser = session()->get('dynamic_user');

        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', '%view_payment')->first());
        }
        return true;
    }


    public function view_sentiment($user) {

        $stanbicUser = session()->get('dynamic_user');

        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', '%view_sentiment')->first());
        }
        return true;
    }

    public function view_simple_bulksms_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest','test'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'send_sms_bulk')->orWhere('name', 'send_sms_group');
            })->first());
        }
        return true;
    }


    public function view_campaign_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest','test'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'send_sms_bulk')->orWhere('name', 'send_sms_group');
            })->first());
        }
        return true;
    }


    public function view_perso_bulksms_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'send_sms_bulk_perso')->orWhere('name', 'send_sms_group_perso');
            })->first());
        }
        return true;
    }

    public function view_social_media($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_social_media');
            })->first());
        }
        return true;
    }

    public function view_simple_bulkemail_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'send_email_bulk')->orWhere('name', 'send_email_group');
            })->first());
        }
        return true;
    }
    public function view_report_log_24h_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_report_24h_sms')->orWhere('name', 'view_report_24h_email');
            })->first());
        }
        return true;
    }
    public function view_report_log_24h_wht_msg_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_report_24h_wht_msg_sms');
            })->first());
        }
        return true;
    }
    public function view_report_specify_period_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_report_specific_sms')->orWhere('name', 'view_report_specific_email');
            })->first());
        }
        return true;
    }
    public function view_bulk_campaign($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_campaign_bulk_sms');
            })->first());
        }
        return true;
    }
    public function view_api_campaign($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'view_campaign_api_sms')->orWhere('name', 'view_campaign_api_email');
            })->first());
        }
        return true;
    }
    public function view_perso_bulkemail_menu($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where(function ($query){
                $query->where('name', 'send_email_bulk_perso')->orWhere('name', 'send_email_group_perso');
            })->first());
        }
        return true;
    }

    public function view_send_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', 'send_sms_%')->first());
        }
        return true;
    }

    public function view_send_email($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', 'send_email_%')->first());
        }
        return true;
    }

    public function view_report($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', 'view_report_%')->first());
        }
        return true;
    }

    public function view_campaign($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->where('name', 'LIKE', 'view_campaign_bulk_sms%')->first());
        }
        return true;
    }

    public function edit_profile($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('edit_profile')->first());
        }
        return true;
    }

    public function view_sms_dashboard($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_sms_dashboard')->first());
        }
        return true;
    }

    public function view_email_dashboard($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_email_dashboard')->first());
        }
        return true;
    }
    public function send_sms_single($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_sms_single')->first());
        }
        return true;
    }
    public function send_voice_single($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_voice_single')->first());
        }
        return true;
    }
    public function send_sms_bulk($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_sms_bulk')->first());
        }
        return true;
    }
    public function send_sms_group($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_sms_group')->first());
        }
        return true;
    }
    public function send_sms_bulk_perso($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_sms_bulk_perso')->first());
        }
        return true;
    }
    public function send_sms_group_perso($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_sms_group_perso')->first());
        }
        return true;
    }
    public function send_email_single($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_email_single')->first());
        }
        return true;
    }
    public function send_email_bulk($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_email_bulk')->first());
        }
        return true;
    }
    public function send_email_group($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_email_group')->first());
        }
        return true;
    }
    public function send_email_bulk_perso($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_email_bulk_perso')->first());
        }
        return true;
    }
    public function send_email_group_perso($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('send_email_group_perso')->first());
        }
        return true;
    }
    public function manage_contacts($user) {
        $stanbicUser = session()->get('dynamic_user');


        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('manage_contacts')->first());
        }
        return true;
    }
    public function view_report_otp($user) {
        $stanbicUser = session()->get('dynamic_user');

//        dd($stanbicUser,$user->username,in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest]));

        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest', 'npontuuser'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_otp')->first());
        }
        return false;
    }
    public function view_report_transactional($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest', 'npontuuser'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_transactional')->first());
        }
        return false;
    }
    public function view_report_bulksms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest', 'npontuuser'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_bulksms')->first());
        }
        return false;
    }
    public function view_report_24h_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_24h_sms')->first());
        }
        return true;
    }
    public function view_report_24h_wht_msg_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_24h_wht_msg_sms')->first());
        }
        return true;
    }
    public function view_report_24h_email($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_24h_email')->first());
        }
        return true;
    }
    public function view_report_specific_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_specific_sms')->first());
        }
        return true;
    }
    public function view_report_specific_email($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_specific_email')->first());
        }
        return true;
    }
    public function view_report_reporting($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_reporting')->first());
        }
        return true;
    }
    public function view_report_comparison($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_comparison')->first());
        }
        return true;
    }
    public function view_report_2way_msg($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_2way_msg')->first());
        }
        return true;
    }
    public function view_report_credit_history($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_credit_history')->first());
        }
        return true;
    }
    public function view_report_invoice($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_report_invoice')->first());
        }
        return true;
    }
    public function view_campaign_bulk_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_campaign_bulk_sms')->first());
        }
        return true;
    }
    public function view_campaign_bulk_email($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_campaign_bulk_email')->first());
        }
        return true;
    }


    public function view_campaign_api_sms($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_campaign_api_sms')->first());
        }
        return true;
    }
    public function view_campaign_api_email($user) {
        $stanbicUser = session()->get('dynamic_user');
        if(!empty($stanbicUser) && in_array($user->username,['stanbicgh','GCBCARDS','onipa','dvla1234','SCBulk','sammy','CelluGH','qatest'])) {
            return !empty($stanbicUser->group->permissions()->whereName('view_campaign_api_email')->first());
        }
        return true;
    }

}
