import stripe
# from config.stripe_const import STRIPE_SECRET_KEY

STRIPE_WEBHOOK_SECRET = "whsec_DKejVDvKv0RukNv2277eoNf4wZWizbgm"
STRIPE_SECRET_KEY = "sk_test_51PpsMl2Kr9WuyfidyblSXtjw501giQgOC4NVdBLA2JX7wYTsE6WX0O01feSDIqXLbBXHwkZFul6hKFtqQEMgH5pZ00QYEOcuR2"

stripe.api_key = STRIPE_SECRET_KEY

def get_active_subscriptions(stripe_customer_id):
    """
    Récupère la liste des abonnements actifs pour un client Stripe donné.

    Args:
        stripe_customer_id (str): L'identifiant Stripe du client
        
    Returns:
        list: Liste des abonnements actifs ou None en cas d'erreur
    """
    print(f"[get_active_subscriptions] Récupération des abonnements pour le client {stripe_customer_id}")
    
    # Récupération des abonnements du client
    subscriptions = stripe.Subscription.list(
        customer=stripe_customer_id,
        status='active',
        limit=100 # Limite maximale autorisée par l'API
    )
    
    print(f"[get_active_subscriptions] abonnements : {subscriptions}")
    
    if not subscriptions.data:
        print(f"[get_active_subscriptions] Aucun abonnement actif trouvé pour le client {stripe_customer_id}")
        return []
        
    print(f"[get_active_subscriptions] {len(subscriptions.data)} abonnement(s) actif(s) trouvé(s)")
    
    # Formatage des données des abonnements
    formatted_subscriptions = []
    for sub in subscriptions['data']:
        subscription_data = {
            'id': sub['id'],
            'status': sub['status'],
            'current_period_end': sub['current_period_end'],
            'cancel_at_period_end': sub['cancel_at_period_end'],
            'items': [{
                'price_id': item['price']['id'],
                'quantity': item['quantity']
            } for item in sub['items']['data']
            ]
        }
        formatted_subscriptions.append(subscription_data)
    
    print(f"[get_active_subscriptions] abonnements : {formatted_subscriptions}")
        
    return formatted_subscriptions
    

get_active_subscriptions("cus_S8PDTyZxs0LtHD")