<?php

namespace App\Http\Controllers\Client;

use App\Http\Controllers\Controller;
use App\Log;
use App\SentimentSetup;
use App\UserSocial;
use Illuminate\Http\Request;

class SentimentAnalysisController extends Controller
{

    public function setup(Request $request){

        if($request->method() == 'POST'){

            $this->validate($request,[
                'query_name' => 'required'
            ]);

            try{
                SentimentSetup::create([
                    'query_name' => $request->query_name
                ]);

                return view('sentiment_analysis.settings',[
                    'query_val' => SentimentSetup::query()->select('query_name')->latest('id')->first(),
                    'success' => 'You have added a new query phrase for Sentiment Analysis'
                ]);
            }
            catch (\Exception $e){
                Log::error($e->getMessage());
            }

        }

        return view('sentiment_analysis.settings',[
            'query_val' => SentimentSetup::query()->select('query_name')->latest('id')->first(),
        ]);
    }

    public function index(){

        $facebook_accesstoken = UserSocial::query()->where('user_id','=', Auth()->user()->id)->select('fb_user_access')->first();

        $user = auth()->user();

        if(!$user->SocialSubscriptionIsValid())  //if the user does have any package yet
            if($user->under_reseller())   //if the user is not a direct client
                return  redirect()->back()
                    ->withErrors('Kindly contact your account administrator for social media package !!');
            else
                return  redirect()->route('social.subscription.index')
                    ->withErrors('Kindly subscribe to a package  !!');



        /** if user has exhausted available post for the month  **/
        if($user->SocialSubscriptionLimits()->no_of_post ?? 0 <= $user->postBalance())
            if($user->under_reseller())   //if the user is not a direct client
                return  redirect()->back()
                    ->withErrors('You have exhausted your number of posts for this month Kindly contact your account administrator !!');
            else
                return  redirect()->route('social.subscription.index')
                    ->withErrors('You have exhausted your number of posts for this month Kindly subscribe to a package  !!');

        if(!$facebook_accesstoken){
            return redirect()->back()->with('msg', 'Facebook ID wasnt found.');
        }
        else{

            return view('sentiment_analysis.index',[
                'facebook_access_token' => $facebook_accesstoken->fb_user_access
            ]);

        }
    }

    public function facebook_sentiments(){
        return view('sentiment_analysis.facebook');
    }

    public function linkedin_sentiments(){
        return view('sentiment_analysis.linkedin');
    }

    public function twitter_sentiments(){
        return view('sentiment_analysis.twitter');
    }

    public function trending(){
        return view('sentiment_analysis.trending');
    }
}