import sys import os sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src"))) from dotenv import load_dotenv load_dotenv(".env") from lib.custom_logger import get_logger logger = get_logger(level=10) from providers.firestore_provider import FireStoreProvider from models.user import UserModel FireStoreProvider() def example_firestore(): logger.info("Starting Firestore example") doc_id = FireStoreProvider.create_document( "users", {"name": "Alice", "age": 30, "tags": ["admin", "beta"]} ) logger.info(f"Created document with ID: {doc_id}") doc = FireStoreProvider.get_document("users", doc_id) logger.info(f"show document: {doc}") rows = FireStoreProvider.list_documents( "users", filters=[("age", ">=", 18)], order_by=["-age"], limit=50, ) logger.info(f"Listed documents: {rows}") FireStoreProvider.update_document("users", doc_id, {"age": 31}, merge=True) FireStoreProvider.delete_document("users", doc_id) def example_user_model(): logger.info("Starting UserModel example") # user = UserModel(name="Bob", email="example@example.com", age=30) # user.save() # logger.info(f"User saved with ID: {user._doc_id}") # user2 = UserModel.get(user._doc_id) # logger.info(f"Fetched user: {user2._doc_id}") # user2.name = "Robert" # user2.age = 31 # user2.save() # logger.info(f"Updated user: {user2._doc_id}") users = UserModel.list() logger.info(f"Listed users: {[user._doc_id for user in users] }") # example_firestore() example_user_model()