Files
flash-call-otp/backend/config.php

64 lines
1.8 KiB
PHP

<?php
/**
* Flash Call OTP System — Configuration
* Domain: otp.intaleqapp.com
*/
// Load Dotenv if composer dependencies are installed
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
// Check inside current dir, parent dir, or grandparent dir
$envPaths = [__DIR__, dirname(__DIR__), dirname(dirname(__DIR__))];
foreach ($envPaths as $path) {
if (file_exists($path . '/.env')) {
$dotenv = Dotenv\Dotenv::createImmutable($path);
$dotenv->safeLoad();
break;
}
}
}
// Database
define('DB_HOST', getenv('DB_HOST'));
define('DB_NAME', getenv('DB_NAME'));
define('DB_USER', getenv('DB_USER'));
define('DB_PASS', getenv('DB_PASS'));
// Redis
define('REDIS_HOST', getenv('REDIS_HOST'));
define('REDIS_PORT', getenv('REDIS_PORT'));
define('REDIS_PASSWORD', getenv('REDIS_PASSWORD') ?: null);
define('REDIS_DB', getenv('REDIS_DB'));
// Application Keys
define('APP_KEY', getenv('APP_KEY'));
define('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', getenv('WHATSAPP_GATEWAY_URL'));
define('WHATSAPP_WEBHOOK_SECRET', getenv('WHATSAPP_WEBHOOK_SECRET'));
define('WHATSAPP_SESSION_KEY', getenv('WHATSAPP_SESSION_KEY'));
// Timezone
date_default_timezone_set('Asia/Amman');