using LazyBear.MCP.Services.ToolRegistry;

namespace LazyBear.MCP.Services.GitLab;

public sealed class GitLabToolModule : IToolModule
{
    public string ModuleName => "GitLab";
    public string Description => "GitLab: репозитории, теги, MR, issues, ветки";

    public IReadOnlyList<string> ToolNames =>
    [
        // Repositories
        "ListProjects",
        "GetProject",

        // Versions (tags)
        "CreateVersion",
        "ListVersions",
        "DeleteVersion",

        // Merge Requests
        "ListMergeRequests",
        "GetMergeRequest",
        "CreateMergeRequest",
        "CloseMergeRequest",
        "OpenMergeRequest",
        "ListMergeRequestNotes",
        "CreateMergeRequestNote",
        "DeleteMergeRequestNote",

        // Issues
        "ListIssues",
        "ListIssuesSimple",
        "GetIssue",
        "CreateIssue",
        "UpdateIssue",
        "CloseIssue",
        "OpenIssue",
        "ListIssueNotes",
        "CreateIssueNote",
        "DeleteIssueNote",

        // Branches
        "ListBranches",
        "GetBranch",
        "CreateBranch",
        "DeleteBranch",
        "ProtectBranch",
        "UnprotectBranch"
    ];
}