@cfxlabsinc/b2b-services
    Preparing search index...

    Variable relatedPersonSelectionConst

    relatedPersonSelection: {
        countryOfResidence: PgBuildColumn<
            "related_person",
            SetNotNull<PgTextBuilder<[string, ...string[]]>>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        createdAt: PgBuildColumn<
            "related_person",
            SetHasDefault<SetNotNull<PgTimestampBuilder>>,
            {
                data: Date;
                dataType: "object date";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: true;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        customerExternalId: PgBuildColumn<
            "related_person",
            SetNotNull<PgTextBuilder<[string, ...string[]]>>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        customerId: PgBuildColumn<
            "related_person",
            SetNotNull<PgIntegerBuilder>,
            {
                data: number;
                dataType: "number int32";
                driverParam: string | number;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        data: PgBuildColumn<
            "related_person",
            Set$Type<
                SetNotNull<PgJsonbBuilder>,
                {
                    address?: {
                        city: string;
                        countryCode: string;
                        line1: string;
                        line2?: string;
                        postalCode?: string;
                        regionCode?: string;
                    };
                    countryOfBirth?: string;
                    dateOfBirth?: string;
                    identityDocument?: {
                        expiryDate: string;
                        issuingCountry: string;
                        number: string;
                        type: "PASSPORT"
                        | "DRIVER_LICENSE"
                        | "ID_CARD";
                    };
                    isBeneficialOwner?: boolean;
                    isPoliticallyExposed?: boolean;
                    nationality?: string;
                    occupationCode?: string;
                    ownershipPercent?: number;
                    personReferenceId?: string;
                    routeFusionDocumentsUploadedAt?: string;
                    routeFusionRepresentativeId?: string;
                    sex?: "OTHER"
                    | "MALE"
                    | "FEMALE";
                    sharesAllocated?: number;
                    taxId?: string;
                    title?: string;
                    verificationProfileId?: string;
                    zenusPersonId?: string;
                },
            >,
            {
                data: {
                    address?: {
                        city: string;
                        countryCode: string;
                        line1: string;
                        line2?: string;
                        postalCode?: string;
                        regionCode?: string;
                    };
                    countryOfBirth?: string;
                    dateOfBirth?: string;
                    identityDocument?: {
                        expiryDate: string;
                        issuingCountry: string;
                        number: string;
                        type: "PASSPORT"
                        | "DRIVER_LICENSE"
                        | "ID_CARD";
                    };
                    isBeneficialOwner?: boolean;
                    isPoliticallyExposed?: boolean;
                    nationality?: string;
                    occupationCode?: string;
                    ownershipPercent?: number;
                    personReferenceId?: string;
                    routeFusionDocumentsUploadedAt?: string;
                    routeFusionRepresentativeId?: string;
                    sex?: "OTHER"
                    | "MALE"
                    | "FEMALE";
                    sharesAllocated?: number;
                    taxId?: string;
                    title?: string;
                    verificationProfileId?: string;
                    zenusPersonId?: string;
                };
                dataType: "object json";
                driverParam: unknown;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        deletedAt: PgBuildColumn<
            "related_person",
            PgTimestampBuilder,
            {
                data: Date;
                dataType: "object date";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
        email: PgBuildColumn<
            "related_person",
            PgTextBuilder<[string, ...string[]]>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
        externalId: PgBuildColumn<
            "related_person",
            SetHasRuntimeDefault<SetNotNull<PgTextBuilder<[string, ...string[]]>>>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: true;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        id: PgBuildColumn<
            "related_person",
            HasIdentity<SetIsPrimaryKey<PgIntegerBuilder>, "byDefault">,
            {
                data: number;
                dataType: "number int32";
                driverParam: string | number;
                enumValues: undefined;
                generated: undefined;
                hasDefault: true;
                hasRuntimeDefault: false;
                identity: "byDefault";
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        name: PgBuildColumn<
            "related_person",
            Set$Type<
                PgJsonbBuilder,
                { firstName: string; lastName: string; middleName?: string },
            >,
            {
                data: { firstName: string; lastName: string; middleName?: string };
                dataType: "object json";
                driverParam: unknown;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
        organizationExternalId: PgBuildColumn<
            "related_person",
            SetNotNull<PgTextBuilder<[string, ...string[]]>>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        organizationId: PgBuildColumn<
            "related_person",
            SetNotNull<PgIntegerBuilder>,
            {
                data: number;
                dataType: "number int32";
                driverParam: string | number;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        phone: PgBuildColumn<
            "related_person",
            PgTextBuilder<[string, ...string[]]>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
        roleDescription: SQL<string>;
        status: PgBuildColumn<
            "related_person",
            Set$Type<
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,

                    | "PENDING_VERIFICATION"
                    | "ACTION_REQUIRED"
                    | "APPROVED"
                    | "REVIEW"
                    | "BLOCKED",
            >,
            {
                data: | "PENDING_VERIFICATION"
                | "ACTION_REQUIRED"
                | "APPROVED"
                | "REVIEW"
                | "BLOCKED";
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        statusDescription: SQL<string>;
        type: PgBuildColumn<
            "related_person",
            Set$Type<
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                "CONTROL" | "BENEFICIAL_OWNER",
            >,
            {
                data: "CONTROL" | "BENEFICIAL_OWNER";
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        typeDescription: SQL<string>;
        updatedAt: PgBuildColumn<
            "related_person",
            SetHasDefault<SetHasDefault<SetNotNull<PgTimestampBuilder>>>,
            {
                data: Date;
                dataType: "object date";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: true;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: true;
                tableName: "related_person";
            },
        >;
        verificationProfileId: PgBuildColumn<
            "related_person",
            PgTextBuilder<[string, ...string[]]>,
            {
                data: string;
                dataType: "string";
                driverParam: string;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
        verificationReasonCodeDescription: SQL<string | null>;
        verificationReasons: PgBuildColumn<
            "related_person",
            Set$Type<PgJsonbBuilder, VerificationReasons>,
            {
                data: VerificationReasons;
                dataType: "object json";
                driverParam: unknown;
                enumValues: undefined;
                generated: undefined;
                hasDefault: false;
                hasRuntimeDefault: false;
                identity: undefined;
                isAutoincrement: false;
                isPrimaryKey: false;
                name: string;
                notNull: false;
                tableName: "related_person";
            },
        >;
    } = ...

    The related-person row every read and write selects: the table's columns plus typeDescription, roleDescription and statusDescription, computed in SQL from the maps.

    Type Declaration

    • countryOfResidence: PgBuildColumn<
          "related_person",
          SetNotNull<PgTextBuilder<[string, ...string[]]>>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >

      Alpha-2 ISO-3166-1. Mandatory: it supplies identity_country_code on every AiPrise verification for this person, which AiPrise rejects the payload without.

    • createdAt: PgBuildColumn<
          "related_person",
          SetHasDefault<SetNotNull<PgTimestampBuilder>>,
          {
              data: Date;
              dataType: "object date";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: true;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • customerExternalId: PgBuildColumn<
          "related_person",
          SetNotNull<PgTextBuilder<[string, ...string[]]>>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • customerId: PgBuildColumn<
          "related_person",
          SetNotNull<PgIntegerBuilder>,
          {
              data: number;
              dataType: "number int32";
              driverParam: string | number;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • data: PgBuildColumn<
          "related_person",
          Set$Type<
              SetNotNull<PgJsonbBuilder>,
              {
                  address?: {
                      city: string;
                      countryCode: string;
                      line1: string;
                      line2?: string;
                      postalCode?: string;
                      regionCode?: string;
                  };
                  countryOfBirth?: string;
                  dateOfBirth?: string;
                  identityDocument?: {
                      expiryDate: string;
                      issuingCountry: string;
                      number: string;
                      type: "PASSPORT"
                      | "DRIVER_LICENSE"
                      | "ID_CARD";
                  };
                  isBeneficialOwner?: boolean;
                  isPoliticallyExposed?: boolean;
                  nationality?: string;
                  occupationCode?: string;
                  ownershipPercent?: number;
                  personReferenceId?: string;
                  routeFusionDocumentsUploadedAt?: string;
                  routeFusionRepresentativeId?: string;
                  sex?: "OTHER"
                  | "MALE"
                  | "FEMALE";
                  sharesAllocated?: number;
                  taxId?: string;
                  title?: string;
                  verificationProfileId?: string;
                  zenusPersonId?: string;
              },
          >,
          {
              data: {
                  address?: {
                      city: string;
                      countryCode: string;
                      line1: string;
                      line2?: string;
                      postalCode?: string;
                      regionCode?: string;
                  };
                  countryOfBirth?: string;
                  dateOfBirth?: string;
                  identityDocument?: {
                      expiryDate: string;
                      issuingCountry: string;
                      number: string;
                      type: "PASSPORT"
                      | "DRIVER_LICENSE"
                      | "ID_CARD";
                  };
                  isBeneficialOwner?: boolean;
                  isPoliticallyExposed?: boolean;
                  nationality?: string;
                  occupationCode?: string;
                  ownershipPercent?: number;
                  personReferenceId?: string;
                  routeFusionDocumentsUploadedAt?: string;
                  routeFusionRepresentativeId?: string;
                  sex?: "OTHER"
                  | "MALE"
                  | "FEMALE";
                  sharesAllocated?: number;
                  taxId?: string;
                  title?: string;
                  verificationProfileId?: string;
                  zenusPersonId?: string;
              };
              dataType: "object json";
              driverParam: unknown;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • deletedAt: PgBuildColumn<
          "related_person",
          PgTimestampBuilder,
          {
              data: Date;
              dataType: "object date";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >
    • email: PgBuildColumn<
          "related_person",
          PgTextBuilder<[string, ...string[]]>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >
    • externalId: PgBuildColumn<
          "related_person",
          SetHasRuntimeDefault<SetNotNull<PgTextBuilder<[string, ...string[]]>>>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: true;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • id: PgBuildColumn<
          "related_person",
          HasIdentity<SetIsPrimaryKey<PgIntegerBuilder>, "byDefault">,
          {
              data: number;
              dataType: "number int32";
              driverParam: string | number;
              enumValues: undefined;
              generated: undefined;
              hasDefault: true;
              hasRuntimeDefault: false;
              identity: "byDefault";
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • name: PgBuildColumn<
          "related_person",
          Set$Type<
              PgJsonbBuilder,
              { firstName: string; lastName: string; middleName?: string },
          >,
          {
              data: { firstName: string; lastName: string; middleName?: string };
              dataType: "object json";
              driverParam: unknown;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >

      Legal name

    • organizationExternalId: PgBuildColumn<
          "related_person",
          SetNotNull<PgTextBuilder<[string, ...string[]]>>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • organizationId: PgBuildColumn<
          "related_person",
          SetNotNull<PgIntegerBuilder>,
          {
              data: number;
              dataType: "number int32";
              driverParam: string | number;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >

      Related persons always belong to exactly one organization

    • phone: PgBuildColumn<
          "related_person",
          PgTextBuilder<[string, ...string[]]>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >
    • roleDescription: SQL<string>
    • status: PgBuildColumn<
          "related_person",
          Set$Type<
              SetNotNull<PgTextBuilder<[string, ...string[]]>>,

                  | "PENDING_VERIFICATION"
                  | "ACTION_REQUIRED"
                  | "APPROVED"
                  | "REVIEW"
                  | "BLOCKED",
          >,
          {
              data: | "PENDING_VERIFICATION"
              | "ACTION_REQUIRED"
              | "APPROVED"
              | "REVIEW"
              | "BLOCKED";
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >

      The person's AiPrise user-profile result, mapped like an identity's by the backoffice AiPrise webhook consumer. A delete never writes this column.

      • PENDING_VERIFICATION: Awaiting an AiPrise result
      • ACTION_REQUIRED: Verification needs information the person lacks; an update supplying it moves it to PENDING_VERIFICATION
      • APPROVED: Approved and reflected in the org's KYB profile
      • REVIEW: AiPrise flagged the person for operator review
      • BLOCKED: Declined or deactivated in AiPrise

      Deletion is deletedAt, not a status: the API-facing DELETED is derived on read so the pre-delete value survives.

    • statusDescription: SQL<string>
    • type: PgBuildColumn<
          "related_person",
          Set$Type<
              SetNotNull<PgTextBuilder<[string, ...string[]]>>,
              "CONTROL" | "BENEFICIAL_OWNER",
          >,
          {
              data: "CONTROL" | "BENEFICIAL_OWNER";
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
      • CONTROL: A person who controls the business (officer, signatory)
      • BENEFICIAL_OWNER: A person with a beneficial ownership stake
    • typeDescription: SQL<string>
    • updatedAt: PgBuildColumn<
          "related_person",
          SetHasDefault<SetHasDefault<SetNotNull<PgTimestampBuilder>>>,
          {
              data: Date;
              dataType: "object date";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: true;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: true;
              tableName: "related_person";
          },
      >
    • verificationProfileId: PgBuildColumn<
          "related_person",
          PgTextBuilder<[string, ...string[]]>,
          {
              data: string;
              dataType: "string";
              driverParam: string;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >

      Written beside data.verificationProfileId; AiPrise's user profile id.

    • verificationReasonCodeDescription: SQL<string | null>
    • verificationReasons: PgBuildColumn<
          "related_person",
          Set$Type<PgJsonbBuilder, VerificationReasons>,
          {
              data: VerificationReasons;
              dataType: "object json";
              driverParam: unknown;
              enumValues: undefined;
              generated: undefined;
              hasDefault: false;
              hasRuntimeDefault: false;
              identity: undefined;
              isAutoincrement: false;
              isPrimaryKey: false;
              name: string;
              notNull: false;
              tableName: "related_person";
          },
      >

      Admin-only; outside both search documents.