File: /var/www/vhost/disk-apps/comfama.sports-crowd.com/app/Services/AcademyService.php
<?php
namespace App\Services;
use App\AcademyUser;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class AcademyService
{
public function find($id)
{
return AcademyUser::find($id);
}
public function validateAcademyStudents()
{
$students = $this->countAcademyStudents();
return $students > 0;
}
public function academyStudents()
{
$students = AcademyUser::select(
DB::raw('UPPER(CONCAT(student_name, " ", student_last_name)) AS name'),
'document_types.alias AS document_type',
'identification AS document',
)->join('document_types', 'document_types.id', '=', 'academy_users.student_document_type_id')
->where('user_id', Auth::user()->id)
->where('academy_users.active', 1)
->orderBy('name', 'ASC')
->get();
return $students;
}
public function mapAcademyData($data)
{
$academyUser = AcademyUser::where('identification', $data['document'])->where('user_id', Auth::user()->id)->first();
if ($academyUser) {
$data['name'] = strtoupper($academyUser->student_name . ' ' . $academyUser->student_last_name);
$data['dob'] = $academyUser->birthdate;
$data['document_type'] = $academyUser->student_document_type_id;
$data['document'] = $academyUser->identification;
$data['fileIdentificationDocument'] = 'pending';
$data['fileInsuranceDocument'] = 'pending';
$data['guardianName'] = strtoupper($academyUser->advisor_name . ' ' . $academyUser->advisor_last_name);
$data['guardianDocument'] = $academyUser->advisor_identification;
$data['guardianEmail'] = $academyUser->mail;
$data['guardianPhone'] = $academyUser->phone;
}
return $data;
}
private function countAcademyStudents()
{
$students = AcademyUser::select(
'academy_users.id'
)->where('user_id', Auth::user()->id)
->where('academy_users.active', 1)
->count();
return $students;
}
}