from flask import Flask
from datetime import timedelta
from .config import Config
from .routes.auth import auth_bp
from .routes.admin import admin_bp
from .routes.client import client_bp
from .routes.dba import dba_bp
from .routes.analytics import analytics_bp          # ← NEW

def create_app():
    app = Flask(
        __name__,
        template_folder="../templates",
        static_folder="../static"
    )
    app.secret_key = Config.SECRET_KEY
    app.permanent_session_lifetime = timedelta(hours=Config.SESSION_HOURS)

    # Jinja filter
    @app.template_filter("escapejs")
    def escapejs(val):
        return (str(val)
                .replace("\\", "\\\\")
                .replace("'", "\\'")
                .replace('"', '\\"')
                .replace("\n", "\\n")
                .replace("\r", "\\r"))

    app.register_blueprint(auth_bp)
    app.register_blueprint(admin_bp)
    app.register_blueprint(client_bp)
    app.register_blueprint(dba_bp)
    app.register_blueprint(analytics_bp)             # ← NEW

    return app