graph LR
Data_Access_Layer_Repositories_["Data Access Layer (Repositories)"]
Domain_Models["Domain Models"]
Service_Layer["Service Layer"]
Database_Engine_Schema["Database Engine/Schema"]
Service_Layer -- "uses" --> Data_Access_Layer_Repositories_
Data_Access_Layer_Repositories_ -- "uses" --> Domain_Models
Data_Access_Layer_Repositories_ -- "uses" --> Database_Engine_Schema
Domain_Models -- "are defined by" --> Database_Engine_Schema
Component overview for the Data Access Layer, including its structure, flow, purpose, and relationships with other fundamental components in the foxops project.
This layer implements the Repository Pattern, providing an abstraction over the persistence mechanism (SQLAlchemy, PostgreSQL/SQLite). It defines and implements interfaces for storing, retrieving, updating, and deleting Incarnation and Change entities, mapping between database-specific models and the application's domain models. It encapsulates the logic for interacting directly with the database.
Related Classes/Methods:
foxops.database.repositories.incarnation.repository(1:1000)foxops.database.repositories.change.repository(1:1000)
Defines the SQLAlchemy ORM models that represent the core entities (Incarnation, Change) within the application's domain. These models serve as the data structures used by the Data Access Layer to interact with the database and by the Service Layer to represent business entities.
Related Classes/Methods:
foxops.database.repositories.incarnation.model(1:1000)foxops.database.repositories.change.model(1:1000)
Contains the core business logic for managing Incarnation and Change entities. It orchestrates complex operations by interacting with the Data Access Layer to persist and retrieve data, and potentially with other external services (e.g., Git hosters). It ensures that business rules and workflows are correctly applied.
Related Classes/Methods:
Manages the underlying database connection, session handling, and defines the database schema (tables, relationships) using SQLAlchemy. It provides the foundational infrastructure for data persistence, enabling the Data Access Layer to interact with the physical database.
Related Classes/Methods:
foxops.database.schema(1:1000)foxops.database.database(1:1000)