#!/bin/sh
set -e
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
mkdir -p /run/mysqld && chown mysql:mysql /run/mysqld 2>/dev/null || true
mysqladmin ping >/dev/null 2>&1 || { nohup mysqld_safe > /tmp/mysqld.log 2>&1 & for i in $(seq 1 30); do mysqladmin ping >/dev/null 2>&1 && break; sleep 1; done; }
mysql -u root -e "DROP DATABASE IF EXISTS zc_safeguarding; CREATE DATABASE zc_safeguarding CHARACTER SET utf8mb4;
CREATE USER IF NOT EXISTS 'zc_app_user'@'localhost' IDENTIFIED BY 'change-me';
GRANT ALL PRIVILEGES ON zc_safeguarding.* TO 'zc_app_user'@'localhost'; FLUSH PRIVILEGES;"
mysql -u root zc_safeguarding < database/schema.sql
mysql -u root zc_safeguarding < database/seeds/permissions.sql
mysql -u root zc_safeguarding < database/migrations/001_whatsapp_bot.sql
mysql -u root zc_safeguarding < database/migrations/002_notifications.sql

mkdir -p storage/logs storage/evidence
rm -f storage/logs/whatsapp-outbox.log storage/logs/email-outbox.log storage/logs/php-error.log

export DB_HOST=127.0.0.1 DB_NAME=zc_safeguarding DB_USER=zc_app_user DB_PASS=change-me APP_ENV=development
export ENCRYPTION_KEY_BASE64="$(php -r 'echo base64_encode(random_bytes(32));')" HASH_PEPPER="$(php -r 'echo bin2hex(random_bytes(32));')"
export ULTRAMSG_INSTANCE_ID=1150 WHATSAPP_WEBHOOK_SECRET=testsecret123
export APP_URL=https://safeguarding.test

(cd public_html && nohup php -S 127.0.0.1:8110 > /tmp/notif-server.log 2>&1 &)
sleep 1

python3 tests/notification_test.py

echo "--- error log during notification run (should be empty) ---"
cat storage/logs/php-error.log 2>/dev/null || true

echo "--- Mailer SMTP protocol tests (real socket-level mock server) ---"
python3 tests/mailer_protocol_test.py
