# #region GitServiceModule [C:3] [TYPE Module] [SEMANTICS git, package, export, mixin, decomposition]
# @LAYER Infrastructure
# @BRIEF Composed GitService via multiple inheritance from domain-specific mixins.
# @RELATION DEPENDS_ON -> [GitServiceBase]
# @RELATION DEPENDS_ON -> [GitServiceBranchMixin]
# @RELATION DEPENDS_ON -> [GitServiceSyncMixin]
# @RELATION DEPENDS_ON -> [GitServiceStatusMixin]
# @RELATION DEPENDS_ON -> [GitServiceMergeMixin]
# @RELATION DEPENDS_ON -> [GitServiceUrlMixin]
# @RELATION DEPENDS_ON -> [GitServiceGiteaMixin]
# @RELATION DEPENDS_ON -> [GitServiceGithubMixin]
# @RELATION DEPENDS_ON -> [GitServiceGitlabMixin]
#
# @RATIONALE  Decomposed from monolithic git_service.py (2101 lines) into
# domain-scoped mixins to satisfy INV_7 (module < 400 lines). The composed class
# preserves the original public API surface — all consumers continue to import
# `from src.services.git_service import GitService` without changes.
# @REJECTED  Keeping a single 2101-line file — violates fractal limit INV_7.

from ._base import GitServiceBase
from ._branch import GitServiceBranchMixin
from ._gitea import GitServiceGiteaMixin
from ._merge import GitServiceMergeMixin
from ._remote_providers import GitServiceGithubMixin, GitServiceGitlabMixin
from ._status import GitServiceStatusMixin
from ._sync import GitServiceSyncMixin
from ._url import GitServiceUrlMixin

__all__ = ["GitService"]


# #region GitService [C:3] [TYPE Class]
# @BRIEF Composed GitService class providing all Git operations — init, clone, branches, commits, push, pull,
#           merge, status, diff, history, and provider API operations (Gitea, GitHub, GitLab).
# @RELATION INHERITS -> [GitServiceBase]
# @RELATION INHERITS -> [GitServiceBranchMixin]
# @RELATION INHERITS -> [GitServiceSyncMixin]
# @RELATION INHERITS -> [GitServiceStatusMixin]
# @RELATION INHERITS -> [GitServiceMergeMixin]
# @RELATION INHERITS -> [GitServiceUrlMixin]
# @RELATION INHERITS -> [GitServiceGiteaMixin]
# @RELATION INHERITS -> [GitServiceGithubMixin]
# @RELATION INHERITS -> [GitServiceGitlabMixin]
class GitService(
    GitServiceGiteaMixin,
    GitServiceGithubMixin,
    GitServiceGitlabMixin,
    GitServiceMergeMixin,
    GitServiceSyncMixin,
    GitServiceStatusMixin,
    GitServiceBranchMixin,
    GitServiceUrlMixin,
    GitServiceBase,
):
    """
    Composed GitService — all Git operations via domain-specific mixins.

    MRO ensures provider mixins and domain mixins resolve before the base class.
    All consumers continue to use: from src.services.git_service import GitService
    """
    pass
# #endregion GitService
# #endregion GitServiceModule
