<?php
namespace App\Classes;
use App\Imali\ImaliAccount;
use App\Imali\ImaliAccountConfig;
use App\Imali\MerchantAccount;
use App\Store;
use App\UserClient;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class MerchantKyC
{
public function checkMerchant(Request $request)
{
$merchant = MerchantAccount::query()
->where('id', $request->user()->id)
->first();
$merchantActivo = MerchantAccount::query()
->where('id', $request->user()->id)
->where('status', '=', 'activa')
->first();
if (!$merchant) {
return response()->json(['message' => 'Comerciante Inválido'], 400);
}
if (!$merchantActivo) {
return response()->json(['message' => 'Está conta tem problemas: Estado da conta ' . $merchantActivo->status], 400);
}
if (!Hash::check($request->password, $merchant->password)) {
return response()->json(['message' => 'Pin Incorrecto'], 400);
}
$imaliConfig = ImaliAccountConfig::find($request->user()->kyc_config_id);
if ($request->amount + $imaliConfig->taxa_refund_mechant > $merchant->balance) {
return response()->json(['message' => 'Saldo Insuficiente'], 400);
}
// $store = Store::query()
// ->where('id', $request->store_id)
// ->where('merchant_account_id', $request->user()->id)
// ->first();
//
// if (!$store) {
// return response()->json(['message' => 'Não tem permissão sobre essa loja'], 400);
// }
$imaliUser = ImaliAccount::query()
->where('account_number', $request->account_number)
->first();
if (!$imaliUser) {
return response()->json(['message' => 'Conta i.Mali inválida'], 400);
}
$token = str_replace('Bearer ', '', $request->header('authorization'));
$userClient = UserClient::query()
->where('client_key', '=', $token)
->first();
$loja = Store::query()
->where('user_client_id', $userClient->id)
->where('account_number', $request->store_account_number)
->first();
if (!$loja) {
return response()->json(['message' => 'Não tem permissão de fazer operações nesta loja'], 400);
}
}
}