<?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);
}
}
}