package auth import ( "fmt" "github.com/router-for-me/CLIProxyAPI/v6/internal/interfaces" ) // ProjectSelectionError indicates that the user must choose a specific project ID. type ProjectSelectionError struct { Email string Projects []interfaces.GCPProjectProjects } func (e *ProjectSelectionError) Error() string { if e == nil { return "cliproxy auth: project selection required" } return fmt.Sprintf("cliproxy auth: project selection required for %s", e.Email) } // ProjectsDisplay returns the projects list for caller presentation. func (e *ProjectSelectionError) ProjectsDisplay() []interfaces.GCPProjectProjects { if e == nil { return nil } return e.Projects } // EmailRequiredError indicates that the calling context must provide an email or alias. type EmailRequiredError struct { Prompt string } func (e *EmailRequiredError) Error() string { if e == nil || e.Prompt == "" { return "cliproxy auth: email is required" } return e.Prompt }