<?php 

	if (Session::get("tipo_usuario") != "1"){ show_403();}
	if ($_SERVER["REQUEST_METHOD"] == "POST") {
		import_file(DIR_MODELS."Model.class.php");
		import_file(DIR_LIBRARIES."functions.php");

		$config = obter_configuracao();

		$id_loja = (int) filter_input(INPUT_POST, "id_loja", FILTER_SANITIZE_NUMBER_INT);
		$nome_plano_loja = filter_input(INPUT_POST, "nome_plano_loja", FILTER_SANITIZE_STRING);
		$porcentagem_plano_loja = (float) filter_input(INPUT_POST, "porcentagem_plano_loja", FILTER_SANITIZE_STRING);
		$porcentagem_cashback = (float) filter_input(INPUT_POST, "porcentagem_cashback", FILTER_SANITIZE_STRING);
		$porcentagem_comissao = (float) filter_input(INPUT_POST, "porcentagem_comissao", FILTER_SANITIZE_STRING);
		
		$porcentagens_niveis = filter_var_array($_POST["niveis"], FILTER_SANITIZE_STRING);

		$id_plano_loja = (int) filter_var(encrypt_decode(filter_input(INPUT_POST, "id_plano_loja", FILTER_SANITIZE_STRING)), FILTER_SANITIZE_NUMBER_INT);

		$model = new Model();

		$result = $model->update("plano_loja", [
			"id_loja" => $id_loja,
			"nome_plano_loja" => $nome_plano_loja,
			"porcentagem_plano_loja" => $porcentagem_plano_loja,
			"porcentagem_cashback" => !empty($porcentagem_cashback) ? $porcentagem_cashback : 0,
			"porcentagem_comissao" => !empty($porcentagem_comissao) ? $porcentagem_comissao : 0
		], [
			"id_plano_loja" => $id_plano_loja
		]);

		if ($result > 0) {
			$last_query = $model->lastQuery();
			$model->insert("historico", [
				"comando_sql" => $last_query,
				"datahora_acao" => date("Y-m-d H:i:s"),
				"id_usuario" => Session::get("id_usuario")
			]);

			$model->delete("nivel_loja", ["id_plano_loja" => $id_plano_loja]);

			for ($i=1; $i <= count($porcentagens_niveis); $i++) {
				$result = $model->insert("nivel_loja", [
					"nome_nivel_loja" => "Nível $i",
					"porcentagem_nivel_loja" => $porcentagens_niveis[($i-1)],
					"id_plano_loja" => $id_plano_loja
				]);

				if ($result > 0) {
					$last_query = $model->lastQuery();
					$model->insert("historico", [
						"comando_sql" => $last_query,
						"datahora_acao" => date("Y-m-d H:i:s"),
						"id_usuario" => Session::get("id_usuario")
					]);	
				}
				else{
					$model->rollback();
					echo json_encode(["status" => false]);
					exit();	
				}
			}

			$model->commit();
			echo json_encode(["status" => true]);
		}
		else{
			$model->rollback();
			echo json_encode(["status" => false]);
		}
	}
	else{
		show_403();
	}

?>