"""
Configuration centralisée pour le système de monitoring des sauvegardes
"""
import os
from datetime import timedelta

# Configuration Microsoft Graph
GRAPH_CONFIG = {
    'tenant_id': '1c442605-9d22-4653-a5e9-5b740855f00e',
    'client_id': '7c71e016-4968-489d-ab46-8d8d68100549',
    'client_secret': '8Xr8Q~yHMh1Kt4OuR9Wa6KQy0UBtwAtsQh7kRakr',
    'authority': 'https://login.microsoftonline.com/1c442605-9d22-4653-a5e9-5b740855f00e',
    'scope': ['https://graph.microsoft.com/.default']
}

# Configuration des emails
EMAIL_CONFIG = {
    'monitored_mailbox': 'checklist@albys.com',
    'sender_email': 'support@albys.com',
    'alert_recipient_prod': 'support@selnhelp.fr',
    'alert_recipient_test': 'axeldossantos47@gmail.com',
    'is_test_mode': True  # Mettre False en production
}

# Configuration du monitoring
MONITORING_CONFIG = {
    'check_interval_minutes': 30,  # Vérifier toutes les 30 minutes
    'alert_threshold_hours': 48,   # Alerter après 48h sans sauvegarde
    'history_retention_days': 60,  # Garder 2 mois d'historique
}

# Types de sauvegardes reconnus
BACKUP_TYPES = {
    'NAS': ['NAS', 'NASBDDD', 'RS1221', 'Synology'],
    'PC': ['PC', 'JESSICA', 'Sauv_PC'],
    'SERVER': ['SERVER', 'SERVEUR'],
    'NETWORK': ['Network', 'RESEAU'],
    'DATABASE': ['DATABASE', 'BDD', 'SQL']
}

# Patterns pour identifier les statuts
STATUS_PATTERNS = {
    'success': [
        'terminé', 'terminée', 'réussi', 'réussie', 
        'success', 'completed', 'done', 'ok'
    ],
    'failure': [
        'échoué', 'échouée', 'failed', 'error', 
        'erreur', 'echec', 'problem', 'problème'
    ]
}

# Configuration de la base de données (pour stocker l'historique)
DATABASE_CONFIG = {
    'db_file': 'backup_monitor.db',
    'table_name': 'backup_history'
}

# Configuration du serveur web
WEB_CONFIG = {
    'host': '0.0.0.0',
    'port': 5000,
    'debug': True,
    'secret_key': os.urandom(24).hex()
}

# Helper pour obtenir l'email de destination selon le mode
def get_alert_recipient():
    """Retourne l'email de destination selon le mode test ou production"""
    if EMAIL_CONFIG['is_test_mode']:
        return EMAIL_CONFIG['alert_recipient_test']
    return EMAIL_CONFIG['alert_recipient_prod']

# Configuration des logs
LOG_CONFIG = {
    'log_level': 'INFO',
    'log_file': 'backup_monitor.log',
    'max_bytes': 10485760,  # 10MB
    'backup_count': 5
}