<?php

namespace App\Http\Controllers;

use App\Models\Asignacion;
use App\Models\CoChofer;
use App\Models\ConfiguracionApp;
use App\Models\CoSocios;
use App\Models\CtVehiculos;
use App\Models\Guardias;
use App\Models\InItem;
use App\Models\SalidadUnidad;
use App\Models\Suspensiones;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;

class InicioController extends Controller
{
    public function AppInit()
    {
        return view('auth.login');
    }

    public function Index()
    {
        if (Auth::check()) {
            $valorSocio = CoSocios::where('Activo', 'A')->count();
            $valorVehiculos = CtVehiculos::where('Estado', 'A')->count();
            $valorSuspendidos = Suspensiones::count();
            $valorRubros = InItem::where('estado','A')->count();
            Log::info( $valorSocio);
            return view('indexHome', ['socio' => $valorSocio, 'vehiculos' => $valorVehiculos, 'suspendidos' => $valorSuspendidos, 'rubros' => $valorRubros]);
        }
        return view('auth.login');
    }
    public function IndexLogin()
    {
        return view('auth.login');
    }
    public function IndexRecuperaClave()
    {
        return view('auth.forgot-password');
    }
    public function DatosInicioApp($idusuario)
    {
        try {
            $dataSocio = CoSocios::where('IdEnte', $idusuario)->first();
$valtarifa=0;
$rangokilo=0;
            $fechaIncial = Carbon::now()->subDay(7);
            $fechaFinal = Carbon::now()->subHour(5);
            //choferes
            $dataChofer = CoChofer::where('Activo', 'S')->where('UsuarioCreacion', $idusuario)->count();
            //unidades
            $dataUnidades = CtVehiculos::where('Estado', 'A')->where('IdSocio', $dataSocio->IdSocios)->count();
            //Asignaciones
             $dataAsignacion = SalidadUnidad::where('estado', 'P')->where('usuario_ing', $idusuario)->select('idunidad')
                             ->groupBy('idunidad','usuario_ing')
                             ->get();
                          
            // $dataAsignacion = SalidadUnidad::where('estado', 'P')->where('usuario_ing', $idusuario)->count();
            //Guardias Generales
            $sumaGuardias = Guardias::where('id_usuario_ing', $idusuario)->sum('valcobrado');
            //rango de guardias =Guardia
            $dataGuardias = Guardias::where('id_usuario_ing', $idusuario)
                ->whereBetween('fechaIngreso', [$fechaIncial, $fechaFinal])->get();
            //consulta Tarifa App
            $dataConfi = ConfiguracionApp::where('propietario', $idusuario)->first();
            if( $dataConfi!=null){
                $valtarifa=$dataConfi->tarifa;
                $rangokilo= $dataConfi->rangokilometraje;
            }

            return response()->json(['status' => 'ok', 'datos' => [
                'chofer' => $dataChofer,
                'tarifa' =>  $valtarifa,
                'rangokilometraje' =>$rangokilo,
                'unidad' => $dataUnidades,
                'asignacion' => count($dataAsignacion),
                'montoGuardia' => $sumaGuardias, 'dataGuardias' => $dataGuardias
            ]]);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'message' => $th->getMessage()]);
        }
    }
}
