safeLoad(); break; } } } // Database define('DB_HOST', $_ENV['DB_HOST'] ?? $_SERVER['DB_HOST'] ?? getenv('DB_HOST')); define('DB_NAME', $_ENV['DB_NAME'] ?? $_SERVER['DB_NAME'] ?? getenv('DB_NAME')); define('DB_USER', $_ENV['DB_USER'] ?? $_SERVER['DB_USER'] ?? getenv('DB_USER')); define('DB_PASS', $_ENV['DB_PASS'] ?? $_SERVER['DB_PASS'] ?? getenv('DB_PASS')); // Redis define('REDIS_HOST', $_ENV['REDIS_HOST'] ?? $_SERVER['REDIS_HOST'] ?? getenv('REDIS_HOST')); define('REDIS_PORT', $_ENV['REDIS_PORT'] ?? $_SERVER['REDIS_PORT'] ?? getenv('REDIS_PORT')); define('REDIS_PASSWORD', $_ENV['REDIS_PASSWORD'] ?? $_SERVER['REDIS_PASSWORD'] ?? getenv('REDIS_PASSWORD') ?: null); define('REDIS_DB', $_ENV['REDIS_DB'] ?? $_SERVER['REDIS_DB'] ?? getenv('REDIS_DB')); // Application Keys define('APP_KEY', $_ENV['APP_KEY'] ?? $_SERVER['APP_KEY'] ?? getenv('APP_KEY')); define('DEVICE_KEY', $_ENV['DEVICE_KEY'] ?? $_SERVER['DEVICE_KEY'] ?? getenv('DEVICE_KEY')); // SMS Sender ID (for iOS SMS delivery) define('SMS_SENDER_ID', 'انطلق'); // OTP Settings define('OTP_EXPIRE_SECONDS', 120); define('MAX_OTP_ATTEMPTS', 5); // Rate Limiting define('RATE_LIMIT_WINDOW', 600); // 10 minutes in seconds define('RATE_LIMIT_MAX', 3); // Max OTP requests per phone per window // Caller ID Configuration // Format: +96279XX{OTP} — XX = random 2 digits define('CALLER_ID_PREFIX', '+9639'); // Logging define('LOG_REQUESTS', true); define('LOG_FILE', __DIR__ . '/logs/api.log'); // WhatsApp Gateway Configuration define('WHATSAPP_GATEWAY_URL', $_ENV['WHATSAPP_GATEWAY_URL'] ?? $_SERVER['WHATSAPP_GATEWAY_URL'] ?? getenv('WHATSAPP_GATEWAY_URL')); define('WHATSAPP_WEBHOOK_SECRET', $_ENV['WHATSAPP_WEBHOOK_SECRET'] ?? $_SERVER['WHATSAPP_WEBHOOK_SECRET'] ?? getenv('WHATSAPP_WEBHOOK_SECRET')); define('WHATSAPP_SESSION_KEY', $_ENV['WHATSAPP_SESSION_KEY'] ?? $_SERVER['WHATSAPP_SESSION_KEY'] ?? getenv('WHATSAPP_SESSION_KEY')); // Timezone date_default_timezone_set('Asia/Amman');