from services.firebase_service import FirebaseService


firebase_service = FirebaseService()

# calculate reach of everyone who has signed up (every user in the database)
users = firebase_service.firestore_client.collection("users").stream()

total_reach = 0 # reach for all users
accepted_reach = 0 # reach for users who have accepted at least one offer
posted_reach = 0 # reach for users who have posted at least once

for user in users:
    user_data = user.to_dict()
    if "instagramFollowerCount" in user_data:
        if user_data.get("instagramHandle") is "" or user_data.get("instagramFollowerCount") is 0:
            continue
        print(f"@{user_data.get('instagramHandle')} has {user_data['instagramFollowerCount']} followers {'(INFLUENCER)' if user_data['instagramFollowerCount'] >= 50000 else ''}")
        total_reach += user_data["instagramFollowerCount"]
        if len(user_data["acceptedOffers"]) > 0:
            accepted_reach += user_data["instagramFollowerCount"]
        for accepted_offer in user_data["acceptedOffers"]:
            if accepted_offer["finalValidation"]:
                posted_reach += user_data["instagramFollowerCount"]
                break


print(f"Total reach: {total_reach}")
print(f"Accepted reach: {accepted_reach}")
print(f"Posted reach: {posted_reach}")