%PDF- %PDF-
Direktori : /home2/vacivi36/core/app/Http/Controllers/ |
Current File : //home2/vacivi36/core/app/Http/Controllers/CampaignController.php |
<?php namespace App\Http\Controllers; use App\Models\Campaign; use App\Models\Vaccine; use Illuminate\Http\Request; class CampaignController extends Controller { /** * Exibir a lista de campanhas. */ public function index() { $campaigns = Campaign::all(); return response()->json($campaigns); } /** * Criar uma nova campanha. */ public function store(Request $request) { // Verifica se o codigo da campanha já está cadastrada if (Campaign::where('code', $request->code)->exists()) { return response()->json(['status' => 'error', 'message' => 'Código da campanha já cadastrada no sistema. Por favor, utilize outro código ou verifique as informações.'], 409); } // Verifica se o nome da campanha já está cadastrada if (Campaign::where('name', $request->name)->exists()) { return response()->json(['status' => 'error', 'message' => 'Nome da campanha já cadastrada no sistema. Por favor, utilize outro nome ou verifique as informações.'], 409); } $campaign = new Campaign(); $campaign->code = $request->code; $campaign->name = $request->name; $campaign->notes = $request->notes; $insert = $campaign->save(); if ($insert) { return response()->json(['status' => 'success', 'message' => 'Campanha criada com sucesso!'], 201); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao criar campanha.'], 500); } } /** * Exibir uma campanha específica. */ public function show($id) { $campaign = Campaign::findOrFail($id); return response()->json($campaign); } /** * Atualizar uma campanha existente. */ public function update(Request $request, $id) { $campaign = Campaign::findOrFail($id); $campaign->code = $request->code; $campaign->name = $request->name; $campaign->notes = $request->notes; $update = $campaign->save(); if ($update) { return response()->json(['status' => 'success', 'message' => 'Campanha atualizada com sucesso!'], 200); } else { return response()->json(['status' => 'error', 'message' => 'Erro ao atualizar campanha.'], 500); } } /** * Remover uma campanha. */ public function destroy($id) { $campaign = Campaign::findOrFail($id); // Verificar se a campanha possui vacinas associadas if ($campaign->vaccines()->exists()) { return response()->json(['message' => 'A campanha não pode ser excluída porque está vinculada com uma ou mais vacinas.'], 400); } $campaign->delete(); return response()->json(['message' => 'Campanha excluída com sucesso!']); } }