%PDF- %PDF-
Direktori : /home2/vacivi36/core/app/Http/Controllers/ |
Current File : //home2/vacivi36/core/app/Http/Controllers/PatientController.php |
<?php namespace App\Http\Controllers; use App\Models\Patient; use Illuminate\Http\Request; class PatientController extends Controller { /** * Exibir a lista de pacientes. */ public function index() { $patients = Patient::with('company')->get(); return response()->json($patients); } /** * Criar um novo paciente. */ public function store(Request $request) { // Verifica se o cpf já está cadastrado if (Patient::where('cpf', $request->cpf)->exists()) { return response()->json(['status' => 'error', 'message' => 'CPF já cadastrado no sistema. Por favor, utilize outro CPF ou verifique as informações.'], 409); } $patient = new Patient(); $patient->name = $request->name; $patient->cpf = $request->cpf; $patient->date_of_birth = $request->date_of_birth; $patient->notes = $request->notes; $patient->postal_code = $request->postal_code; $patient->address = $request->address; $patient->district = $request->district; $patient->address_number = $request->address_number; $patient->address_complement = $request->address_complement; $patient->city = $request->city; $patient->phone = $request->phone; $patient->mobile = $request->mobile; $patient->email = $request->email; $patient->company_id = $request->company_id; $insert = $patient->save(); if ($insert) { return response()->json(['status' => 'success', 'message' => 'Paciente criado com sucesso!'], 201); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao criar paciente.'], 500); } } /** * Exibir um paciente específico. */ public function show($id) { $patient = Patient::findOrFail($id); return response()->json($patient); } /** * Atualizar um paciente existente. */ public function update(Request $request, $id) { $patient = Patient::findOrFail($id); $patient->name = $request->name; $patient->cpf = $request->cpf; $patient->date_of_birth = $request->date_of_birth; $patient->notes = $request->notes; $patient->postal_code = $request->postal_code; $patient->address = $request->address; $patient->district = $request->district; $patient->address_number = $request->address_number; $patient->address_complement = $request->address_complement; $patient->city = $request->city; $patient->phone = $request->phone; $patient->mobile = $request->mobile; $patient->email = $request->email; $patient->company_id = $request->company_id; $update = $patient->save(); if ($update) { return response()->json(['status' => 'success', 'message' => 'Paciente atualizado com sucesso!'], 200); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao atualizar paciente.'], 500); } } /** * Remover um paciente. */ public function destroy($id) { $patient = Patient::findOrFail($id); // Verifica se o paciente tem agendamentos if ($patient->schedules()->exists()) { return response()->json(['message' => 'O paciente possui agendamentos de vacinas e não pode ser excluído.'], 400); } $patient->delete(); return response()->json(['message' => 'Paciente excluído com sucesso!']); } }