This commit is contained in:
100
api/app/Services/Ambulatorio/ServicoService.php
Normal file
100
api/app/Services/Ambulatorio/ServicoService.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Ambulatorio;
|
||||
|
||||
use App\Models\Ambulatorio\Servico;
|
||||
use App\Models\Ambulatorio\ServicoTipo;
|
||||
use App\Services\Service;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ServicoService extends Service
|
||||
{
|
||||
public static function datatable()
|
||||
{
|
||||
return DB::table('ambulatorio_servico as servico')
|
||||
->leftJoin(
|
||||
'ambulatorio_servico_tipo as tipo',
|
||||
'tipo.id',
|
||||
'servico.tipo_id'
|
||||
)
|
||||
->select(
|
||||
'servico.id',
|
||||
'servico.nome',
|
||||
DB::raw('tipo.nome as tipo'),
|
||||
);
|
||||
}
|
||||
|
||||
public static function create()
|
||||
{
|
||||
return [
|
||||
'form' => self::getForm(),
|
||||
'model' => [
|
||||
'nome' => null,
|
||||
'tipo_id' => null,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
public static function edit($id)
|
||||
{
|
||||
$servico = Servico::findOrFail($id);
|
||||
|
||||
return [
|
||||
'form' => self::getForm(),
|
||||
'model' => [
|
||||
'nome' => $servico->nome,
|
||||
'tipo_id' => $servico->tipo_id,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
private static function getForm()
|
||||
{
|
||||
return [
|
||||
'tipos' => ServicoTipo::orderBy('nome')->get(['id', 'nome']),
|
||||
];
|
||||
}
|
||||
|
||||
public static function store()
|
||||
{
|
||||
self::validate();
|
||||
|
||||
return Servico::create(request()->all())->fresh();
|
||||
}
|
||||
|
||||
public static function update($id)
|
||||
{
|
||||
self::validate();
|
||||
|
||||
return (tap(Servico::findOrFail($id))->update(request()->all()))->fresh();
|
||||
}
|
||||
|
||||
public static function validate()
|
||||
{
|
||||
$rules = [
|
||||
'nome' => [
|
||||
'required',
|
||||
'string',
|
||||
'between:3,100',
|
||||
Rule::unique(Servico::class, 'nome')->ignore(request()->route('servico')),
|
||||
],
|
||||
'tipo_id' => [
|
||||
'nullable',
|
||||
'integer',
|
||||
Rule::exists(ServicoTipo::class, 'id'),
|
||||
],
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'nome.unique' => 'O nome do Serviço já foi inserido anteriormente.',
|
||||
];
|
||||
|
||||
request()->validate($rules, $messages);
|
||||
}
|
||||
|
||||
public static function destroy($id)
|
||||
{
|
||||
Servico::findOrFail($id)->delete();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user