/**
 * Configuration Firebase
 * 
 * Ce fichier centralise la configuration Firebase pour l'application
 */

module.exports.firebase = {

    // Configuration du projet
    projectId: 'corossol-55973',

    // Clé de serveur pour FCM (Cloud Messaging)
    serverKey: process.env.FIREBASE_SERVER_KEY || sails.config.custom?.firebase?.serverKey,

    // Configuration Admin SDK (si nécessaire)
    serviceAccount: {
        projectId: 'corossol-55973',
        clientEmail: 'firebase-adminsdk-fbsvc@corossol-55973.iam.gserviceaccount.com',
        privateKey: process.env.FIREBASE_PRIVATE_KEY || sails.config.custom?.firebase?.privateKey
    },

    // Configuration FCM
    fcm: {
        // URL de l'API FCM
        apiUrl: 'https://fcm.googleapis.com/fcm/send',

        // URL de l'API Instance ID (pour les topics)
        iidApiUrl: 'https://iid.googleapis.com/iid/v1',

        // Timeout des requêtes (en ms)
        timeout: 10000,

        // Nombre maximum de tentatives
        maxRetries: 3
    },

    // Configuration des topics par défaut
    defaultTopics: {
        // Topic pour les notifications générales
        general: 'general_notifications',

        // Topic pour les notifications d'école
        school: 'school_notifications',

        // Topic pour les notifications d'abonnement
        subscription: 'subscription_notifications',

        // Topic pour les notifications de paiement
        payment: 'payment_notifications'
    },

    // Validation de la configuration
    validate: function () {
        const errors = [];

        if (!this.serverKey) {
            errors.push('FIREBASE_SERVER_KEY manquant - Nécessaire pour FCM et topics');
        }

        if (errors.length > 0) {
            sails.log.warn('⚠️  Configuration Firebase incomplète:');
            errors.forEach(error => sails.log.warn(`   - ${error}`));
            return false;
        }

        sails.log.info('✅ Configuration Firebase validée');
        return true;
    }
};
