"""Flask application factory for Work Statistics System.""" from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_cors import CORS db = SQLAlchemy() def create_app(config_name='default'): """Create and configure the Flask application. Args: config_name: Configuration name ('default', 'testing', 'production') Returns: Configured Flask application instance """ app = Flask(__name__) # Load configuration from app.config import config app.config.from_object(config[config_name]) # Initialize extensions db.init_app(app) CORS(app) # Register API routes from app.routes import register_routes register_routes(app) # Create database tables and initialize default admin with app.app_context(): db.create_all() _init_default_admin() return app def _init_default_admin(): """Initialize default admin account if none exists. This ensures there is always at least one admin account available for login when the application starts. """ from flask import current_app from app.services.admin_service import AdminService # Skip default admin creation in testing mode if current_app.config.get('TESTING', False): return created, message = AdminService.create_default_admin() if created: print(f"[Init] {message}") # Silently skip if admins already exist