package git

import (
	"fmt"
	"os"

	"bit.admedia.com/scm/ad/adpilot-indexing-repo-sync.com/internal/config"
)

// RemoveWorkspace deletes the on-disk clone directory for a repository.
func RemoveWorkspace(cfg config.Config, repoID string) error {
	if err := ValidateRepoID(repoID); err != nil {
		return err
	}

	workDir, err := WorkspaceDir(cfg, repoID)
	if err != nil {
		return err
	}
	if err := EnsureUnderWorkspace(cfg.Git.WorkspacePath, workDir); err != nil {
		return err
	}

	if _, err := os.Stat(workDir); os.IsNotExist(err) {
		return nil
	} else if err != nil {
		return fmt.Errorf("stat workspace: %w", err)
	}

	if err := os.RemoveAll(workDir); err != nil {
		return fmt.Errorf("remove workspace: %w", err)
	}
	return nil
}
