|
|
@@ -6,6 +6,8 @@ use App\Enums\UserStatusEnum;
|
|
|
use App\Enums\UserTypeEnum;
|
|
|
use App\Models\PartnerAgreement;
|
|
|
use App\Models\User;
|
|
|
+use App\Models\Appointment;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
|
|
|
class DashboardService
|
|
|
{
|
|
|
@@ -22,4 +24,40 @@ class DashboardService
|
|
|
'associados_pendentes' => User::where('type', UserTypeEnum::ASSOCIADO)->where('status', UserStatusEnum::PENDING)->count(),
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
+ public function getPartnerStats(): array
|
|
|
+ {
|
|
|
+ // $partnerAgreementId = Auth::user()->partner_agreement_id;
|
|
|
+
|
|
|
+ $partnerAgreementId = 1;
|
|
|
+ return [
|
|
|
+ 'authorization' => Appointment::where('partner_agreement_id', $partnerAgreementId)
|
|
|
+ ->where('status', 'pendente')
|
|
|
+ ->count(),
|
|
|
+
|
|
|
+
|
|
|
+ 'scheduling' => Appointment::query()
|
|
|
+ ->leftJoin(
|
|
|
+ 'partner_agreement_services',
|
|
|
+ 'partner_agreement_services.id',
|
|
|
+ '=',
|
|
|
+ 'appointments.partner_agreement_service_id'
|
|
|
+ )
|
|
|
+ ->where('appointments.partner_agreement_id', $partnerAgreementId)
|
|
|
+ ->where('partner_agreement_services.requires_scheduling', true)
|
|
|
+ ->where('appointments.status', 'pendente')
|
|
|
+ ->count(),
|
|
|
+
|
|
|
+
|
|
|
+ //aqui e o count total sem status e sem nada
|
|
|
+ 'completed' => Appointment::where('partner_agreement_id', $partnerAgreementId)
|
|
|
+ ->count(),
|
|
|
+
|
|
|
+
|
|
|
+ //status recusado
|
|
|
+ 'not_authorized' => Appointment::where('partner_agreement_id', $partnerAgreementId)
|
|
|
+ ->where('status', 'recusado')
|
|
|
+ ->count(),
|
|
|
+ ];
|
|
|
+ }
|
|
|
}
|