File: /var/www/api_matriculas/app/Repositories/StatusPostulationRepository.php
<?php
namespace App\Repositories;
use App\Models\StatusPostulation;
use Exception;
class StatusPostulationRepository
{
public function getAll()
{
return StatusPostulation::where('deleted', false)
->orderBy('id', 'asc')
->get();
}
public function getById($id)
{
$register = StatusPostulation::where('deleted', false)->where('id', $id)->first();
if (!$register) {
throw new Exception("StatusPostulation not found", 404);
}
return $register;
}
public function create($data)
{
$createData = [
'status_postulation' => $data->status_postulation,
'code' => $data->code,
'background' => $data->background ?? null,
'status' => true,
'created_at' => now(),
'updated_at' => now(),
];
if (auth()->check()) {
$createData['user_created'] = auth()->id();
$createData['user_updated'] = auth()->id();
}
return StatusPostulation::create($createData);
}
public function update($register, $data)
{
$register->status_postulation = $data->status_postulation ?? $register->status_postulation;
$register->code = $data->code ?? $register->code;
$register->background = $data->background ?? $register->background;
$register->status = isset($data->status) ? (bool)$data->status : $register->status;
$register->user_updated = auth()->check() ? auth()->id() : $register->user_updated;
$register->updated_at = now();
$register->save();
return $register;
}
}