import pymongo import urllib.parse import os def create_db(): """ Connect to MongoDB Atlas and create collections for the Billing App. """ raw_username = os.getenv("DB_USERNAME") raw_password = os.getenv("DB_PASSWORD") if not raw_username or not raw_password: raise Exception("Database credentials are missing. Check your environment variables.") cluster = "cluster0" username = urllib.parse.quote_plus(raw_username) password = urllib.parse.quote_plus(raw_password) uri = f"mongodb+srv://{username}:{password}@cluster0.yxjok.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0" client = pymongo.MongoClient(uri) db = client["billing_app"] users_coll = db["users"] sections_coll = db["sections"] bills_coll = db["bills"] users_coll.create_index("email", unique=True) sections_coll.create_index( [("owner_email", 1), ("section_name", 1)], unique=True ) bills_coll.create_index( [("owner_email", 1), ("section_name", 1), ("participant", 1)] ) print("Database and collections created (or already exist). Indexes applied.") if __name__ == "__main__": create_db()