<?php
/**
 * Factory para crear Senders según la plataforma
 * 
 * Este factory simplifica la creación de senders para diferentes plataformas
 * usando la nueva estructura de directorios.
 * 
 * Ubicación: /common/helpers/sender_factory.php
 * Fecha de creación: 2025-11-25
 */

class SenderFactory {
    
    /**
     * Crea un sender para la plataforma especificada
     * 
     * @param string $platform 'telegram' o 'discord'
     * @param PDO $pdo Conexión a base de datos (requerida para Telegram)
     * @return TelegramSender|DiscordSender
     * @throws Exception Si la plataforma no es soportada
     */
    public static function create($platform, $pdo = null) {
        switch(strtolower($platform)) {
            case 'telegram':
                if ($pdo === null) {
                    throw new Exception("PDO es requerido para TelegramSender");
                }
                require_once __DIR__ . '/../../telegram/TelegramSender.php';
                return new TelegramSender(TELEGRAM_BOT_TOKEN, $pdo);
                
            case 'discord':
                require_once __DIR__ . '/../../discord/DiscordSender.php';
                return new DiscordSender(DISCORD_BOT_TOKEN);
                
            default:
                throw new Exception("Plataforma no soportada: $platform. Use 'telegram' o 'discord'");
        }
    }
    
    /**
     * Verifica si una plataforma es soportada
     * 
     * @param string $platform
     * @return bool
     */
    public static function isSupported($platform) {
        return in_array(strtolower($platform), ['telegram', 'discord']);
    }
    
    /**
     * Obtiene lista de plataformas soportadas
     * 
     * @return array
     */
    public static function getSupportedPlatforms() {
        return ['telegram', 'discord'];
    }
}
