from functools import wraps
from flask import session, redirect, url_for, flash

def login_required(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        if 'user_id' not in session:
            return redirect(url_for('auth_bp.signin'))
        
        # If the user is on a content generation page but hasn't linked LinkedIn
        if 'linkedin_token' not in session:
            flash("Please connect your LinkedIn account first.", "info")
            return redirect(url_for('social_bp.connect_hub'))
            
        return f(*args, **kwargs)
    return decorated_function