from __future__ import annotations
import path_setup  # noqa: F401
import sx.sx_components as sx_components  # noqa: F401  # ensure Hypercorn --reload watches this file

from shared.infrastructure.factory import create_base_app

from bp import register_actions, register_data, register_fragments
from services import register_domain_services


def create_app() -> "Quart":
    app = create_base_app(
        "relations",
        domain_services_fn=register_domain_services,
    )

    app.register_blueprint(register_actions())
    app.register_blueprint(register_data())
    app.register_blueprint(register_fragments())

    return app


app = create_app()
