WP_CLI=wp-cli --allow-root
RAND := $(shell openssl rand -hex 16)
PRODUCT_ID := 10
install: configure

configure:
	@echo "⚙️ Configuring Wordpress database..."
	dockerize -wait tcp://wp_service_1_db:3306 -timeout 180s 2> /dev/null
	@rm -f wp-config.php
	$(WP_CLI) core config \
		--dbhost=${WORDPRESS_DB_HOST} \
		--dbname=${WORDPRESS_DB_NAME} \
		--dbuser=${WORDPRESS_DB_USER} \
		--dbpass=${WORDPRESS_DB_PASSWORD} \
		--locale=${WORDPRESS_LOCALE}

	$(WP_CLI) core install \
		--url="${CHALL_SERVER_IP}:${CHALL_SERVER_PORT}" \
		--title=$(WORDPRESS_WEBSITE_TITLE) \
		--admin_user=${WORDPRESS_ADMIN_USER} \
		--admin_password=${WORDPRESS_ADMIN_PASSWORD} \
		--admin_email=${WORDPRESS_ADMIN_EMAIL}

	$(WP_CLI) option update siteurl "http://${CHALL_SERVER_IP}:${CHALL_SERVER_PORT}"
	$(WP_CLI) rewrite structure $(WORDPRESS_WEBSITE_POST_URL_STRUCTURE)
	@sleep 1
	$(WP_CLI) plugin activate bazaar

	# 🛒 Install and activate WooCommerce
	$(WP_CLI) plugin install woocommerce --activate
	@sleep 5

	# 🧩 Create uploads directory if missing
	@mkdir -p /var/www/html/wp-content/uploads/bazaar

	# 📦 Create a downloadable file
	@echo "CTF{REDACTED}" > /var/www/html/wp-content/uploads/bazaar/flag-$(RAND).txt
	@echo "Created flag-$(RAND).txt"

	@sleep 5
	# ✅ Create a downloadable WooCommerce product
	# 🛒 Create WooCommerce downloadable product with file meta inline
	$(WP_CLI) post create \
		--post_type=product \
		--post_status=publish \
		--post_title="Flaggable-Download" \
		--meta_input='{"_downloadable":"yes","_virtual":"yes","_regular_price":"10","_price":"10","_download_limit":"-1","_download_expiry":"-1","_downloadable_files":[{"name":"Flag","file":"http://${CHALL_SERVER_IP}:${CHALL_SERVER_PORT}/wp-content/uploads/bazaar/flag-$(RAND).txt"}]}' \
		--porcelain


	$(WP_CLI) option update woocommerce_demo_store 0

	@sleep 7
	@chmod -R 555 /var/www/html/
	@chmod -R 755 /var/www/html/wp-content/uploads
	@chmod 111 /var/www/html/wp-config.php
