<?php 

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

		$nome_loja = filter_input(INPUT_POST, "nome_loja", FILTER_SANITIZE_STRING);
		$whatsapp_loja = filter_input(INPUT_POST, "whatsapp_loja", FILTER_SANITIZE_STRING);
		$telefone_loja = filter_input(INPUT_POST, "telefone_loja", FILTER_SANITIZE_STRING);
		$iframe_localizador_loja = filter_input(INPUT_POST, "iframe_localizador_loja", FILTER_DEFAULT);
		$link_facebook_loja = filter_input(INPUT_POST, "link_facebook_loja", FILTER_SANITIZE_URL);
		$link_instagram_loja = filter_input(INPUT_POST, "link_instagram_loja", FILTER_SANITIZE_URL);
		$descricao_loja = filter_input(INPUT_POST, "descricao_loja", FILTER_DEFAULT);

		$banner_velho = filter_var_array($_POST["banner_velho"], FILTER_SANITIZE_STRING);

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

		$dia_semana = filter_var_array($_POST["dia_semana"], FILTER_SANITIZE_STRING);
		$funcionamento = filter_var_array($_POST["funcionamento"], FILTER_SANITIZE_STRING);
		$horario_abertura = filter_var_array($_POST["horario_abertura"], FILTER_SANITIZE_STRING);
		$horario_fechamento = filter_var_array($_POST["horario_fechamento"], FILTER_SANITIZE_STRING);

		$id_categoria_loja = (int) filter_input(INPUT_POST, "id_categoria_loja", FILTER_SANITIZE_NUMBER_INT);
		$id_subcategoria_loja = filter_var_array($_POST["id_subcategoria_loja"], FILTER_SANITIZE_NUMBER_INT);

		$model = new Model();

		if (!empty($nome_loja) and !empty($whatsapp_loja)) {
			// Faz o upload do banner da loja
			// $banner = upload_file($_FILES["banner_loja"], "images/loja/", IMAGE_FILES)[0];
			// $banner = !empty($banner) ? $banner : $banner_velho;

			if ($_FILES["banner_loja"]["error"] != UPLOAD_ERR_OK and !is_array($_FILES["banner_loja"]["error"])) { // Verifica se ouve alteração da imagem do produto
				echo json_encode(["status" => false]);
				exit();
			}

			// Faz o upload do banner da loja
			$banner = upload_file($_FILES["banner_loja"], "images/loja/", IMAGE_FILES);

			$novo_banner = [];
			$c1 = 0;

			for ($i=0; $i < count($banner_velho); $i++) {
				if (!empty($id_loja)) {
					if ($banner_velho[$i] == "0") {
						$novo_banner[] = $banner[$c1];
						$c1++;
					}
					else{
						$novo_banner[] = $banner_velho[$i];
					}
				}
			}

			for ($i = $c1; $i < count($banner); $i++) {
				$novo_banner[] = $banner[$i];
			}

			if (empty($id_loja) and $model->issetElementInTable("loja", ["id_usuario" => Session::get("id_usuario")]) == false) {
				// Cadastro da loja
				$result = $model->insert("loja", [
					"id_usuario" => Session::get("id_usuario"),
					"nome_loja" => $nome_loja,
					"banner_loja" => $novo_banner[0],
					"whatsapp_loja" => $whatsapp_loja,
					"telefone_loja" => $telefone_loja,
					"iframe_localizador_loja" => $iframe_localizador_loja,
					"link_facebook_loja" => $link_facebook_loja,
					"link_instagram_loja" => $link_instagram_loja,
					"id_categoria_loja" => $id_categoria_loja,
					"id_estado" => Session::get("id_estado"),
					"id_cidade" => Session::get("id_cidade"),
					"descricao_loja" => $descricao_loja
				]);
			}
			else{
				// Editação da loja
				$result = $model->update("loja", [
					"nome_loja" => $nome_loja,
					"banner_loja" => $novo_banner[0],
					"whatsapp_loja" => $whatsapp_loja,
					"telefone_loja" => $telefone_loja,
					"iframe_localizador_loja" => $iframe_localizador_loja,
					"link_facebook_loja" => $link_facebook_loja,
					"link_instagram_loja" => $link_instagram_loja,
					"id_categoria_loja" => $id_categoria_loja,
					"id_estado" => Session::get("id_estado"),
					"id_cidade" => Session::get("id_cidade"),
					"descricao_loja" => $descricao_loja
				], [
					"id_loja" => $id_loja
				]);
			}

			if ($result > 0) {	
				// Gera o histórico
				$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("horario_funcionamento", ["id_loja" => $id_loja]);

				for ($i=0; $i < count($dia_semana); $i++) { 
					$result = $model->insert("horario_funcionamento", [
						"id_loja" => $id_loja,
						"dia_semana" => $dia_semana[$i],
						"aberto_24h" => ($funcionamento[$i] == "1") ? "S" : "N",
						"fechado" => ($funcionamento[$i] == "2") ? "S" : "N",
						"horario_abertura" => $horario_abertura[$i],
						"horario_fechamento" => $horario_fechamento[$i]
					]);

					if ($result > 0) {
						// Gera o histórico
						$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->delete("imagem_loja", ["id_loja" => $id_loja]);

				for ($i=0; $i < count($novo_banner); $i++) {
					$result = $model->insert("imagem_loja", [
						"id_loja" => $id_loja,
						"diretorio_imagem_loja" => $novo_banner[$i]
					]);

					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->delete("loja_subcategoria", ["id_loja" => $id_loja]);

				for ($i=0; $i < count($id_subcategoria_loja); $i++) {
					if (!empty($id_subcategoria_loja[$i])) {
							$result = $model->insert("loja_subcategoria", [
							"id_loja" => $id_loja,
							"id_subcategoria_loja" => $id_subcategoria_loja[$i]
						]);

						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{
			echo json_encode(["status" => false]);
			exit();
		}
	}
	else{
		show_403();
	}

?>