""" Infrastructure initialization module for ClassroomCopilot Handles Neo4j database, schema, calendar structure, and Supabase storage buckets """ import os from typing import Dict, Any from modules.logger_tool import initialise_logger logger = initialise_logger(__name__, os.getenv("LOG_LEVEL"), os.getenv("LOG_PATH"), 'default', True) def initialize_infrastructure() -> Dict[str, Any]: """ Initialize infrastructure: Neo4j database, schema, calendar structure, and Supabase buckets Returns: dict: Result status and message """ logger.info("Starting infrastructure initialization...") try: # 1. Initialize Neo4j database, schema, and calendar structure logger.info("Step 1: Initializing Neo4j infrastructure...") from .neo4j import initialize_neo4j neo4j_result = initialize_neo4j() if not neo4j_result["success"]: return { "success": False, "message": f"Neo4j infrastructure initialization failed: {neo4j_result['message']}" } # 2. Initialize Supabase storage buckets logger.info("Step 2: Initializing Supabase storage buckets...") from .buckets import initialize_buckets buckets_result = initialize_buckets() if not buckets_result["success"]: return { "success": False, "message": f"Storage buckets initialization failed: {buckets_result['message']}" } logger.info("Infrastructure initialization completed successfully!") return { "success": True, "message": "Infrastructure initialization completed successfully", "neo4j": neo4j_result, "buckets": buckets_result } except Exception as e: error_msg = f"Failed to initialize infrastructure: {str(e)}" logger.error(error_msg) return { "success": False, "message": error_msg, "error": str(e) }