from __future__ import annotations from dataclasses import dataclass from backend.bootstrap.settings import Settings from backend.database.connection import Database from backend.database.repositories.status import DatabaseStatusRepository @dataclass(frozen=True, slots=True) class ApplicationContainer: settings: Settings database: Database database_status: DatabaseStatusRepository def build_container(settings: Settings) -> ApplicationContainer: database = Database(settings.database_path) return ApplicationContainer( settings=settings, database=database, database_status=DatabaseStatusRepository(database), )