// Copyright (c) 2025-2026 Probo Inc . // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above // copyright notice and this permission notice appear in all copies. // // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. package coredata import ( "database/sql/driver" "fmt" ) type ConnectorProvider string const ( ConnectorProviderSlack ConnectorProvider = "SLACK" ConnectorProviderGoogleWorkspace ConnectorProvider = "GOOGLE_WORKSPACE" ConnectorProviderLinear ConnectorProvider = "LINEAR" // _ ConnectorProvider = "FIGMA" — formerly Figma; removed (no driver, no OAuth config, no usage) ConnectorProviderOnePassword ConnectorProvider = "ONE_PASSWORD" ConnectorProviderHubSpot ConnectorProvider = "HUBSPOT" ConnectorProviderDocuSign ConnectorProvider = "DOCUSIGN" ConnectorProviderNotion ConnectorProvider = "NOTION" ConnectorProviderBrex ConnectorProvider = "BREX" ConnectorProviderTally ConnectorProvider = "TALLY" ConnectorProviderCloudflare ConnectorProvider = "CLOUDFLARE" ConnectorProviderOpenAI ConnectorProvider = "OPENAI" ConnectorProviderSentry ConnectorProvider = "SENTRY" ConnectorProviderSupabase ConnectorProvider = "SUPABASE" ConnectorProviderGitHub ConnectorProvider = "GITHUB" ConnectorProviderIntercom ConnectorProvider = "INTERCOM" ConnectorProviderResend ConnectorProvider = "RESEND" ) func ConnectorProviders() []ConnectorProvider { return []ConnectorProvider{ ConnectorProviderSlack, ConnectorProviderGoogleWorkspace, ConnectorProviderLinear, ConnectorProviderOnePassword, ConnectorProviderHubSpot, ConnectorProviderDocuSign, ConnectorProviderNotion, ConnectorProviderBrex, ConnectorProviderTally, ConnectorProviderCloudflare, ConnectorProviderOpenAI, ConnectorProviderSentry, ConnectorProviderSupabase, ConnectorProviderGitHub, ConnectorProviderIntercom, ConnectorProviderResend, } } func (cp ConnectorProvider) String() string { return string(cp) } func (cp *ConnectorProvider) Scan(value any) error { var s string switch v := value.(type) { case string: s = v case []byte: s = string(v) default: return fmt.Errorf("unsupported type for ConnectorProvider: %T", value) } switch s { case "SLACK": *cp = ConnectorProviderSlack case "GOOGLE_WORKSPACE": *cp = ConnectorProviderGoogleWorkspace case "LINEAR": *cp = ConnectorProviderLinear case "ONE_PASSWORD": *cp = ConnectorProviderOnePassword case "HUBSPOT": *cp = ConnectorProviderHubSpot case "DOCUSIGN": *cp = ConnectorProviderDocuSign case "NOTION": *cp = ConnectorProviderNotion case "BREX": *cp = ConnectorProviderBrex case "TALLY": *cp = ConnectorProviderTally case "CLOUDFLARE": *cp = ConnectorProviderCloudflare case "OPENAI": *cp = ConnectorProviderOpenAI case "SENTRY": *cp = ConnectorProviderSentry case "SUPABASE": *cp = ConnectorProviderSupabase case "GITHUB": *cp = ConnectorProviderGitHub case "INTERCOM": *cp = ConnectorProviderIntercom case "RESEND": *cp = ConnectorProviderResend default: return fmt.Errorf("invalid ConnectorProvider value: %q", s) } return nil } func (cp ConnectorProvider) Value() (driver.Value, error) { return cp.String(), nil }