WP_CLI=wp-cli --allow-root

install: configure

configure:  
	@echo "⚙️ Configuring Wordpress database..."
	dockerize -wait tcp://wp_service_1_db:3306 -timeout 120s 2> /dev/null #2>&1
	@rm -f wp-config.php

	@echo "Sleeping for 6 seconds to let dust settle in..."
	@sleep 6
	@echo "Continuing..."

	$(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)
	$(WP_CLI) plugin delete akismet
	$(WP_CLI) plugin delete hello-dolly

	# Activate plugin first to generate API token
	$(WP_CLI) plugin activate patchstack-scheduler-pro
	@sleep 5  # Give it a moment to generate the token

	# Generate a random position between 1 and 50 for the config post
	@RANDOM_POS=$$(( ( RANDOM % 50 ) + 1 )); \
	CURRENT_POST=1; \
	while [ $$CURRENT_POST -le 50 ]; do \
		if [ $$CURRENT_POST -eq $$RANDOM_POS ]; then \
			$(WP_CLI) post create \
				--post_type=post \
				--post_title="Patchstack Scheduler Configuration" \
				--post_content="API Token: $$($(WP_CLI) option get ps_api_token 2>/dev/null)" \
				--post_status=draft; \
		else \
			$(WP_CLI) post create \
				--post_type=post \
				--post_title="Draft Social Media Content $$CURRENT_POST" \
				--post_content="This is a draft content for post $$CURRENT_POST, Patchstack Blog Post will be scheduled at 10:00 AM" \
				--post_status=draft; \
		fi; \
		CURRENT_POST=$$((CURRENT_POST + 1)); \
	done

	@chmod -R 555 /var/www/html/
	@curl "http://${CHALL_SERVER_IP}:${CHALL_SERVER_PORT}" > /dev/null
	@sleep 1
	@chmod 111 /var/www/html/wp-config.php 