<?php
namespace App\Http\Controllers;
use App\Bank\Payment;
use App\Classes\Kyc;
use App\Imali\ImaliAccount;
use App\Imali\ImaliAccountConfig;
use App\Imali\Transfer;
use Illuminate\Http\Request;
class UserKycController extends Controller
{
public function check(Request $request)
{
$kyc = new Kyc();
$result = $kyc->checkSender($request);
if ($result) {
return $result;
} else {
return response()->json(['message' => 'KYC Verificado'], 200);
}
// $sender = ImaliAccount::query()
// ->join('users', 'users.id', '=', 'imali_accounts.user_id')
// ->join('imali_account_configs', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
// ->where('imali_accounts.user_id', $request->id)
// ->first();
//
// $receiver = ImaliAccount::query()
// ->join('users', 'users.id', '=', 'imali_accounts.user_id')
// ->join('imali_account_configs', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
// ->where('imali_accounts.user_id', $request->receiver_id)
// ->select('imali_accounts.*', 'users.name', 'imali_account_configs.*')
// ->first();
//
// $payments = Transfer::query()
// ->whereDate('created_at', date('Y-m-d'))
// ->where('reciever_id', $request->receiver_id)
// ->count();
//
// $transferencias = Transfer::query()->where('sender_id', $request->id)->whereYear('created_at', date('Y'))->sum('amount');
// $pagamentos = Payment::query()->where('sender_id', $request->id)->whereYear('created_at', date('Y'))->sum('amount');
//
// $total = $pagamentos + $transferencias;
//
//
// if ($total >= $sender->max_value_year) {
// return response()->json(['message' => 'Atingiu o limite de transanccões ao Ano'], 400);
// }
//
// if ($sender->max_value_operation < $request->amount) {
// return response()->json(['message' => 'Limite por transacção '.$sender->max_value_operation, 'INS-1' => 400], 400);
// }
//
// if ($receiver->balance >= $sender->max_balance) {
// return response()->json(['message' => 'Problemas na conta do '. $receiver->name, 'INS-2' => 400], 400);
// }
// if ($payments > $receiver-> nr_transaction){
// return response()->json(['message' => $receiver->name.' atingiu o limite diário' , 'INS-3' => 400, $receiver], 400);
// }
}
public function makeCheck(Request $request)
{
$kyc = new Kyc();
$result = $kyc->checkRecharge($request);
if ($result) {
return $result;
} else {
return response()->json(['message' => 'KYC Verificado recharge'], 200);
}
}
public function checkSenderPayment(Request $request)
{
$kyc = new Kyc();
$kycCheck = $kyc->checkSenderPayment($request);
if ($kycCheck) {
return $kycCheck;
} else {
return response()->json(['message' => 'KYC Verificado recharge'], 200);
}
}
public function deleteKyc($id)
{
$kyc = ImaliAccountConfig::query()
->join('imali_accounts', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
->where('imali_account_configs.id','=',$id)
->select('imali_account_configs.*')
->count();
if ($kyc>0) {
return response()->json(['message' => 'Este kYC já está sendo Utilizado'], 400);
} else {
$kycD = ImaliAccountConfig::find($id);
$kycD->delete();
return response()->json(['message' => 'Kyc'.$kycD->level.' eliminado com Sucesso']);
}
}
public function saveKyc(Request $request)
{
ImaliAccountConfig::create([
'taxa' => $request->taxa,
'level' => $request->level,
'nr_transaction' => $request->nr_transaction,
'point_value' => $request->point_value,
'max_value_operation' => $request->max_value_operation,
'min_value_operation' => $request->min_value_operation,
'max_value_year' => $request->max_value_year,
'max_balance' => $request->max_balance
]);
return response()->json(['message' => 'Kyc eliminado com Sucesso']);
}
public function updateKyc(Request $request)
{
$update2 = ImaliAccountConfig::find($request->id);
$update2->update([
'taxa' => $request->taxa,
'level' => $request->level,
'nr_transaction' => $request->nr_transaction,
'point_value' => $request->point_value,
'max_value_operation' => $request->max_value_operation,
'min_value_operation' => $request->min_value_operation,
'max_value_year' => $request->max_value_year,
'max_balance' => $request->max_balance
]);
return response()->json(['message' => 'Kyc actualizado com Sucesso']);
}
}