<?php namespace App\Http\Controllers; use App\Models\AccountType; use App\Models\CardType; use App\Models\CustomerAccount; use App\Models\CustomerCard; use Illuminate\Http\Request; class CommonController extends Controller { public function addCartType(Request $request) { $this->validate($request, [ 'name' => 'required', 'description' => 'required', ], [ 'name.required' => 'Compo name Obrigatório', 'description.required' => 'Descrição do Tipo de Cartão é Obrigatório' ]); CardType::create([ 'name' => $request->name, 'description' => $request->description ]); return response()->json(['message' => 'Cartão adicionado com Sucesso'], 200); } public function addAccountType(Request $request) { $this->validate($request, [ 'name' => 'required', 'description' => 'required', ], [ 'name.required' => 'Compo name Obrigatório', 'description.required' => 'Descrição do Tipo de Conta é Obrigatório' ]); AccountType::create([ 'name' => $request->name, 'description' => $request->description ]); return response()->json(['message' => 'Cartão adicionado com Sucesso'], 200); } public function updateCardType(Request $request) { $this->validate($request, [ 'id' => 'required', ]); $cardType = CardType::find($request->id); if ($cardType) { $cardType->update([ 'name' => $request->name, 'description' => $request->description ]); return response()->json(['message' => 'Cartão adicionado com Sucesso'], 200); } else { return response()->json(['message' => 'Cartão não encontrado'], 400); } } public function updateAccountType(Request $request) { $this->validate($request, [ 'id' => 'required', ]); $account = AccountType::find($request->id); if ($account) { $account->update([ 'name' => $request->name, 'description' => $request->description ]); return response()->json(['message' => 'Cartão adicionado com Sucesso'], 200); } else { return response()->json(['message' => 'Tipo de Conta não encontrado'], 400); } } public function getCardType($id) { $data = CardType::query()->where('id', $id)->first(); if ($data) { return response()->json($data); } else { return response()->json(['message' => 'Cartão não encontrado'], 402); } } public function getAccountType($id) { $data = AccountType::query()->where('id', $id)->first(); if ($data) { return response()->json($data); } else { return response()->json(['message' => 'Conta não encontrada'], 402); } } public function deleteCardType($id) { $data = CardType::query()->where('id', $id)->first(); if ($data) { $cardCheck = CustomerCard::query() ->where('card_type_id', $data->id) ->count(); if ($cardCheck > 0) { return response()->json(['message' => 'Este Tipo de Cartão não pode ser Removido, pois já está em uso.'], 400); } else { $data->delete(); return response()->json(['message' => 'Tipo de Cartão Removido com Sucesso'], 200); } } else { return response()->json(['message' => 'Tipo de Cartão não encontrado'], 402); } } public function deleteAccountType($id) { $data = AccountType::query()->where('id', $id)->first(); if ($data) { $cardCheck = CustomerAccount::query() ->where('account_type_id', $data->id) ->count(); if ($cardCheck > 0) { return response()->json(['message' => 'Este Tipo de Conta não pode ser Removido, pois já está em uso.'], 400); } else { $data->delete(); return response()->json(['message' => 'Tipo de Conta Removido com Sucesso'], 200); } } else { return response()->json(['message' => 'Tipo de Conta não encontrado'], 402); } } }