<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Traits\Desxpert;
use App\Services\MyProfileService;
use App\Services\RoleService;

class MyProfileController extends Controller
{
    use  Desxpert;

    protected $myProfileService;
    protected $roleService;


    public function __construct(MyProfileService $myProfileService, RoleService $roleService)
    {
        $this->myProfileService = $myProfileService;
        $this->roleService = $roleService;
    }

    public function index()
    {
        $loggedUser = $this->loggedUser();

        return view('myprofile.index', compact('loggedUser'));
    }

    public function edit()
    {
        $loggedUser = $this->loggedUser();

        return view('myprofile.edit', compact('loggedUser'));
    }

    public function update(Request $request)
    {
        $user = $this->loggedUser();
        $response = $this->myProfileService->update($request, $user);

        return redirect('myprofile')->with($response['status'], $response['message']);
    }

    public function crop(Request $request)
    {
        $response = $this->myProfileService->crop($request);

        return $response;
    }

    public function upload(Request $request)
    {
        $user = $this->loggedUser();
        $response = $this->myProfileService->upload($request, $user->id);

        return redirect('myprofile')->with($response['status'], $response['message']);
    }

    public function changePassword()
    {
        $loggedUser = $this->loggedUser();

        return view('myprofile.change-password', compact('loggedUser'));
    }

    public function updatePassword(Request $request)
    {
        $loggedUser = $this->loggedUser();
        $response = $this->myProfileService->updatePassword($request, $loggedUser);

        return redirect($response['redirect'])->with($response['status'], $response['message']);
    }
}
