sementara

main
mikhailkusuma 2024-07-14 16:11:00 +07:00
parent 4d4ab1817f
commit a1d2870a47
8 changed files with 516 additions and 13 deletions

View File

@ -7,8 +7,10 @@ use App\Models\AgendaGuestBooks;
use App\Models\Agendas; use App\Models\Agendas;
use App\Models\Appointments; use App\Models\Appointments;
use App\Models\DataRequests; use App\Models\DataRequests;
use App\Models\Master\Agamas;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller class DashboardController extends Controller
{ {
@ -21,6 +23,49 @@ class DashboardController extends Controller
return view('pages.admins.dashboard', $this->total()); return view('pages.admins.dashboard', $this->total());
} }
public function coba()
{
$data_agama = $this->data_agama();
// return $data_agama['json_keterangan'];
// Call view Dashboard
return view('pages.admins.coba', compact('data_agama'));
}
private function data_agama()
{
$data = Agamas::leftJoin(DB::raw('(
SELECT
qa.answer,
qs.name,
qd.question_label,
qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, \'$[0]\')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, \'$[0]\')) AS name_master,
COUNT(qa.answer) AS total_agama
FROM question_answers AS qa
LEFT JOIN question_surveys AS qs ON qs.id = qa.question_id
LEFT JOIN question_details AS qd ON qs.id = qd.question_id
WHERE qa.answer_type = \'Master\'
GROUP BY qa.answer
HAVING question_type = \'Master\' AND name_master = \'Agamas\'
) AS total'), 'total.answer', '=', 'mst_agamas.keterangan')
->select('mst_agamas.keterangan AS nama')
->selectRaw('IFNULL(total.total_agama, 0) AS total_agama')
->get();
$json_total = $data->pluck('total_agama');
$json_keterangan = $data->pluck('nama');
// $json_keterangan = '["' . implode('"], [', $json_keterangan) . '"]';
return [
'total' => $data->sum('total_agama'),
'json_total' => $json_total,
'json_keterangan' => $json_keterangan,
'data' => $data,
];
}
// Total Request // Total Request
public function total() public function total()
{ {

View File

@ -12,6 +12,6 @@ class MasterStatusPerkawinanController extends Controller
{ {
$data = MasterStatusPerkawinans::paginate(10); $data = MasterStatusPerkawinans::paginate(10);
return view('pages.masters.disabilitas.index', compact('data')); return view('pages.masters.status-perkawinans.index', compact('data'));
} }
} }

151
corat-coret.sql Normal file
View File

@ -0,0 +1,151 @@
SELECT
ma.*,
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM mst_agamas as ma
LEFT JOIN question_answers as qa ON qa.answer = ma.keterangan
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY ma.keterangan -- , qa.answer
HAVING
question_type = 'Master'
AND name_master = 'Agamas';
-- SHOW SPECIFIC DATA ARRAY
SELECT JSON_UNQUOTE(JSON_EXTRACT('["Agamas", "keterangan"]', '$[0]')) AS name;
-- Trial show all data agama
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'Agamas';
-- Count data Agama
SELECT
ma.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane
FROM mst_agamas as ma
LEFT JOIN (
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'Agamas'
) as total ON total.answer = ma.keterangan;
-- Count data disabilitas
SELECT
md.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane
FROM mst_disabilitas as md
LEFT JOIN (
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'MasterDisabilitas'
) as total ON total.answer = md.keterangan;
-- Count data disabilitas
SELECT
md.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane
FROM mst_disabilitas as md
LEFT JOIN (
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'MasterDisabilitas'
) as total ON total.answer = md.keterangan;
-- Count data status perkawinan
SELECT
msp.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane
FROM mst_status_perkawinans as msp
LEFT JOIN (
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'MasterStatusPerkawinans'
) as total ON total.answer = msp.keterangan;
-- Total Laki Laki Dan Perempuan
SELECT
msp.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane
FROM mst_status_perkawinans as msp
LEFT JOIN (
SELECT
qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer,
qs.name,
qd.question_label, qd.question_value,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type,
JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master,
count(qa.answer) as total_agama
FROM question_answers as qa
LEFT JOIN question_surveys as qs ON qs.id = qa.question_id
LEFT JOIN question_details as qd ON qs.id = qd.question_id
WHERE qa.answer_type = 'Master'
GROUP BY qa.answer
HAVING
question_type = 'Master'
AND name_master = 'MasterStatusPerkawinans'
) as total ON total.answer = msp.keterangan;

View File

@ -0,0 +1,309 @@
@extends('layouts.app')
@section('title', 'Dashboard')
@section('content')
<!-- Row 1 -->
<div class="row">
<div class="col-lg-4 d-flex align-items-stretch">
<div class="card w-100">
<div class="card-body">
<div>
<h4 class="card-title fw-semibold mb-1 text-center">
Grafik Agama
</h4>
<p class="card-subtitle text-center">Data mayoritas agama responden</p>
<div id="chartAgama" class="mb-7 pb-8 mx-n4"></div>
<div class="d-flex align-items-center justify-content-center">
<div class="d-flex align-items-center">
<div
class="bg-primary-subtle rounded me-8 p-8 d-flex align-items-center justify-content-center">
<i class="ti ti-grid-dots text-primary fs-6"></i>
</div>
<div class="row">
<p class="fs-3 mb-0 fw-normal">Total</p>
<h6 class="fw-semibold text-dark fs-4 mb-0">
{{ $data_agama['total'] }}
<span class="fs-2 fw-normal">data</span>
</h6>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 d-flex align-items-stretch">
<div class="card w-100">
<div class="card-body p-4">
<div class="mb-4">
<h5 class="card-title fw-semibold">Recent Transactions</h5>
</div>
<ul class="timeline-widget mb-0 position-relative mb-n5">
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">09:30</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-primary flex-shrink-0 my-8"></span>
<span class="timeline-badge-border d-block flex-shrink-0"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1">Payment received from John Doe of $385.90</div>
</li>
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">10:00 am</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-info flex-shrink-0 my-8"></span>
<span class="timeline-badge-border d-block flex-shrink-0"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1 fw-semibold">New sale recorded <a
href="javascript:void(0)" class="text-primary d-block fw-normal">#ML-3467</a>
</div>
</li>
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">12:00 am</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-success flex-shrink-0 my-8"></span>
<span class="timeline-badge-border d-block flex-shrink-0"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1">Payment was made of $64.95 to Michael</div>
</li>
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">09:30 am</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-warning flex-shrink-0 my-8"></span>
<span class="timeline-badge-border d-block flex-shrink-0"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1 fw-semibold">New sale recorded <a
href="javascript:void(0)" class="text-primary d-block fw-normal">#ML-3467</a>
</div>
</li>
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">09:30 am</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-danger flex-shrink-0 my-8"></span>
<span class="timeline-badge-border d-block flex-shrink-0"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1 fw-semibold">New arrival recorded
</div>
</li>
<li class="timeline-item d-flex position-relative overflow-hidden">
<div class="timeline-time text-dark flex-shrink-0 text-end">12:00 am</div>
<div class="timeline-badge-wrap d-flex flex-column align-items-center">
<span class="timeline-badge border-2 border border-success flex-shrink-0 my-8"></span>
</div>
<div class="timeline-desc fs-3 text-dark mt-n1">Payment Done</div>
</li>
</ul>
</div>
</div>
</div>
<div class="col-lg-8 d-flex align-items-stretch">
<div class="card w-100">
<div class="card-body p-4">
<h5 class="card-title fw-semibold mb-4">Recent Transactions</h5>
<div class="table-responsive">
<table class="table text-nowrap mb-0 align-middle">
<thead class="text-dark fs-4">
<tr>
<th class="border-bottom-0">
<h6 class="fw-semibold mb-0">Id</h6>
</th>
<th class="border-bottom-0">
<h6 class="fw-semibold mb-0">Assigned</h6>
</th>
<th class="border-bottom-0">
<h6 class="fw-semibold mb-0">Name</h6>
</th>
<th class="border-bottom-0">
<h6 class="fw-semibold mb-0">Priority</h6>
</th>
<th class="border-bottom-0">
<h6 class="fw-semibold mb-0">Budget</h6>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0">1</h6>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-1">Sunil Joshi</h6>
<span class="fw-normal">Web Designer</span>
</td>
<td class="border-bottom-0">
<p class="mb-0 fw-normal">Elite Admin</p>
</td>
<td class="border-bottom-0">
<div class="d-flex align-items-center gap-2">
<span class="badge bg-primary rounded-3 fw-semibold">Low</span>
</div>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0 fs-4">$3.9</h6>
</td>
</tr>
<tr>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0">2</h6>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-1">Andrew McDownland</h6>
<span class="fw-normal">Project Manager</span>
</td>
<td class="border-bottom-0">
<p class="mb-0 fw-normal">Real Homes WP Theme</p>
</td>
<td class="border-bottom-0">
<div class="d-flex align-items-center gap-2">
<span class="badge bg-secondary rounded-3 fw-semibold">Medium</span>
</div>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0 fs-4">$24.5k</h6>
</td>
</tr>
<tr>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0">3</h6>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-1">Christopher Jamil</h6>
<span class="fw-normal">Project Manager</span>
</td>
<td class="border-bottom-0">
<p class="mb-0 fw-normal">MedicalPro WP Theme</p>
</td>
<td class="border-bottom-0">
<div class="d-flex align-items-center gap-2">
<span class="badge bg-danger rounded-3 fw-semibold">High</span>
</div>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0 fs-4">$12.8k</h6>
</td>
</tr>
<tr>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0">4</h6>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-1">Nirav Joshi</h6>
<span class="fw-normal">Frontend Engineer</span>
</td>
<td class="border-bottom-0">
<p class="mb-0 fw-normal">Hosting Press HTML</p>
</td>
<td class="border-bottom-0">
<div class="d-flex align-items-center gap-2">
<span class="badge bg-success rounded-3 fw-semibold">Critical</span>
</div>
</td>
<td class="border-bottom-0">
<h6 class="fw-semibold mb-0 fs-4">$2.4k</h6>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script src="https://bootstrapdemos.adminmart.com/modernize/dist/assets/libs/apexcharts/dist/apexcharts.min.js">
</script>
{{-- <script src="{{ asset('assets/js/dashboard.js') }}"></script> --}}
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
@if (Session::has('login-message'))
<script>
Swal.fire({
title: "Selamat Datang",
text: "{{ Session::get('login-message')['msg'] }}",
icon: "{{ Session::get('login-message')['type'] }}",
timer: 2500
});
</script>
@endif
<script>
$(function() {
// =====================================
// Agama
// =====================================
var chartAgama = {
series: [{
name: "Total",
data: {{ $data_agama['json_total'] }},
}, ],
chart: {
toolbar: {
show: false,
},
height: 260,
type: "bar",
fontFamily: "inherit",
foreColor: "#adb0bb",
},
colors: [
"var(--bs-primary)",
"var(--bs-primary)",
"var(--bs-primary)",
"var(--bs-primary)",
"var(--bs-primary)",
"var(--bs-primary)",
"var(--bs-primary)",
],
plotOptions: {
bar: {
borderRadius: 4,
columnWidth: "45%",
distributed: true,
endingShape: "rounded",
},
},
dataLabels: {
enabled: false,
},
legend: {
show: false,
},
grid: {
yaxis: {
lines: {
show: false,
},
},
xaxis: {
lines: {
show: false,
},
},
},
xaxis: {
categories: {!! json_encode($data_agama['json_keterangan']) !!},
axisBorder: {
show: false,
},
axisTicks: {
show: false,
},
},
yaxis: {
labels: {
show: false,
},
},
tooltip: {
theme: "dark",
},
};
var chart = new ApexCharts(document.querySelector("#chartAgama"), chartAgama);
chart.render();
});
</script>
@endpush
@endsection

View File

@ -1,12 +1,12 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', 'Master Disabilitas') @section('title', 'Master Pekerjaan')
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-lg-12 d-flex align-items-stretch"> <div class="col-lg-12 d-flex align-items-stretch">
<div class="card w-100"> <div class="card w-100">
<div class="card-body p-4"> <div class="card-body p-4">
<div class="d-flex align-items-stretch"> <div class="d-flex align-items-stretch">
<h5 class="card-title fw-semibold mb-4">Master Disabilitas</h5> <h5 class="card-title fw-semibold mb-4">Master Pekerjaan</h5>
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-responsive table-bordered text-nowrap mb-0 align-middle"> <table class="table table-responsive table-bordered text-nowrap mb-0 align-middle">
@ -28,8 +28,7 @@
class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span> class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span>
</td> </td>
<td class="border-bottom-0" style="max-width: 100px;"> <td class="border-bottom-0" style="max-width: 100px;">
<span <span class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
</td> </td>
</tr> </tr>
@empty @empty

View File

@ -1,12 +1,12 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', 'Master Pekerjaan') @section('title', 'Master Status Perkawinan')
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-lg-12 d-flex align-items-stretch"> <div class="col-lg-12 d-flex align-items-stretch">
<div class="card w-100"> <div class="card w-100">
<div class="card-body p-4"> <div class="card-body p-4">
<div class="d-flex align-items-stretch"> <div class="d-flex align-items-stretch">
<h5 class="card-title fw-semibold mb-4">Master Pekerjaan</h5> <h5 class="card-title fw-semibold mb-4">Master Status Perkawinan</h5>
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-responsive table-bordered text-nowrap mb-0 align-middle"> <table class="table table-responsive table-bordered text-nowrap mb-0 align-middle">
@ -28,8 +28,7 @@
class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span> class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span>
</td> </td>
<td class="border-bottom-0" style="max-width: 100px;"> <td class="border-bottom-0" style="max-width: 100px;">
<span <span class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
</td> </td>
</tr> </tr>
@empty @empty

View File

@ -1,12 +1,12 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', 'Master Disabilitas') @section('title', 'Master Status Tempat Tinggal')
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-lg-12 d-flex align-items-stretch"> <div class="col-lg-12 d-flex align-items-stretch">
<div class="card w-100"> <div class="card w-100">
<div class="card-body p-4"> <div class="card-body p-4">
<div class="d-flex align-items-stretch"> <div class="d-flex align-items-stretch">
<h5 class="card-title fw-semibold mb-4">Master Disabilitas</h5> <h5 class="card-title fw-semibold mb-4">Master Status Tempat Tinggal</h5>
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-responsive table-bordered text-nowrap mb-0 align-middle"> <table class="table table-responsive table-bordered text-nowrap mb-0 align-middle">
@ -28,8 +28,7 @@
class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span> class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }}</span>
</td> </td>
<td class="border-bottom-0" style="max-width: 100px;"> <td class="border-bottom-0" style="max-width: 100px;">
<span <span class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
class="fw-normal mb-1 badge text-bg-light">{{ $_data->keterangan }}</span>
</td> </td>
</tr> </tr>
@empty @empty

View File

@ -121,6 +121,7 @@ Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff']], functi
Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff|Responden']], function () { Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff|Responden']], function () {
// Dashboard // Dashboard
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index'); Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index');
Route::get('coba', [DashboardController::class, 'coba'])->name('coba');
Route::get('dashboard/total', [DashboardController::class, 'total'])->name('admin.dashboard.total'); Route::get('dashboard/total', [DashboardController::class, 'total'])->name('admin.dashboard.total');
// Profile // Profile