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:
@@ -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"),
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
16
pkg/coredata/migrations/20260528T182700Z.sql
Normal file
16
pkg/coredata/migrations/20260528T182700Z.sql
Normal 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';
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user