Add Global vendor country region

Allow vendor country selections to use a Global region alongside
existing country and EU values. The new value is accepted by backend
country-code validation, exposed through GraphQL and MCP schemas, and
shown in the shared country picker label set.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-05-28 18:51:42 +00:00
parent 93d8d20dbf
commit 29d8181b2c
8 changed files with 32 additions and 6 deletions

View File

@@ -14,8 +14,9 @@
type Translator = (s: string) => string;
// ISO 3166-1 alpha-2 country codes
// ISO 3166-1 alpha-2 country codes and supported regions.
export const countries = [
"GLOBAL",
"AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR",
"AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE",
"BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ",
@@ -46,6 +47,7 @@ export const countries = [
export type CountryCode = typeof countries[number];
const countryNames: Record<CountryCode, (t: Translator) => string> = {
"GLOBAL": (__) => __("Global"),
"AD": (__) => __("Andorra"),
"AE": (__) => __("United Arab Emirates"),
"AF": (__) => __("Afghanistan"),

View File

@@ -169,7 +169,7 @@ export const description: INodeProperties[] = [
name: 'countries',
type: 'string',
default: '',
description: 'Comma-separated list of country codes',
description: 'Comma-separated list of country or region codes',
},
{
displayName: 'Data Processing Agreement URL',

View File

@@ -181,7 +181,7 @@ export const description: INodeProperties[] = [
name: 'countries',
type: 'string',
default: '',
description: 'Comma-separated list of country codes',
description: 'Comma-separated list of country or region codes',
},
{
displayName: 'Data Processing Agreement URL',

View File

@@ -25,6 +25,10 @@ type (
CountryCode string
)
const (
CountryCodeGlobal CountryCode = "GLOBAL"
)
const (
CountryCodeAD CountryCode = "AD"
CountryCodeAE CountryCode = "AE"
@@ -286,6 +290,7 @@ var (
func (v CountryCode) IsValid() bool {
switch v {
case
CountryCodeGlobal,
CountryCodeAD,
CountryCodeAE,
CountryCodeAF,

View File

@@ -0,0 +1,16 @@
-- Copyright (c) 2026 Probo Inc <hello@getprobo.com>.
--
-- 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.
-- Add the Global region to vendor country selections.
ALTER TYPE country_code ADD VALUE 'GLOBAL' BEFORE 'AD';

View File

@@ -45,6 +45,7 @@ enum OrderDirection
enum CountryCode
@goModel(model: "go.probo.inc/probo/pkg/coredata.CountryCode") {
GLOBAL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGlobal")
AD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAD")
AE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAE")
AF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAF")

View File

@@ -218,6 +218,7 @@ components:
CountryCode:
type: string
enum:
- GLOBAL
- AD
- AE
- AF
@@ -828,7 +829,7 @@ components:
type: array
items:
type: string
description: Countries (ISO 3166-1 alpha-2 country codes)
description: Countries or regions (ISO 3166-1 alpha-2 country codes, EU, or GLOBAL)
business_owner_id:
anyOf:
- $ref: "#/components/schemas/GID"
@@ -1054,7 +1055,7 @@ components:
type: array
items:
type: string
description: Countries (ISO 3166-1 alpha-2 country codes)
description: Countries or regions (ISO 3166-1 alpha-2 country codes, EU, or GLOBAL)
business_owner_id:
$ref: "#/components/schemas/GID"
description: Business owner ID
@@ -1155,7 +1156,7 @@ components:
type: array
items:
type: string
description: Countries (ISO 3166-1 alpha-2 country codes)
description: Countries or regions (ISO 3166-1 alpha-2 country codes, EU, or GLOBAL)
business_owner_id:
$ref: "#/components/schemas/GID"
description: Business owner ID

View File

@@ -55,6 +55,7 @@ type PageInfo {
enum CountryCode
@goModel(model: "go.probo.inc/probo/pkg/coredata.CountryCode") {
GLOBAL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGlobal")
AD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAD")
AE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAE")
AF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAF")