Compare commits
58 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| edbdca614c | |||
| 70ada24a1d | |||
| 78ea9d8eeb | |||
| ce32c76ab9 | |||
| e485b679ea | |||
| a78b319877 | |||
| 92a9c3a4d4 | |||
| c3dd6b25a6 | |||
| 6f9b59b224 | |||
| b60a91a075 | |||
| cd540098f1 | |||
| 1b30983307 | |||
| 128d2d394d | |||
| ff9b5a5cad | |||
| 979047d004 | |||
| 8bd4cbc3fd | |||
| f899660a40 | |||
| 0877ba2ffd | |||
| fa408c9126 | |||
| 4e1cc2d831 | |||
| c2ca90c255 | |||
| 36b654bab3 | |||
| 41d5d80a65 | |||
| e0d42323af | |||
| d3a1781a59 | |||
| 70066cdcf4 | |||
| a7fed47932 | |||
| f4da7767f8 | |||
| badeaddd37 | |||
| 9042e8a542 | |||
| 100b08e827 | |||
| 437eed0862 | |||
| 5a55021e26 | |||
| 63435a7937 | |||
| 6a2c948e84 | |||
| fba8d15f8b | |||
| b53f1832d8 | |||
| 3d49642d12 | |||
| 4ad8d8e98e | |||
| 475cd9e7fe | |||
| f0be78e629 | |||
| fe5337b7d0 | |||
| f50e471385 | |||
| a3a44c8315 | |||
| e99116b0a5 | |||
| 2ac515894b | |||
| e6614299c6 | |||
| ccffc4a1ea | |||
| 685c0ddd12 | |||
| 15eaabdbc1 | |||
| 50c9b68e81 | |||
| 34d893f9fd | |||
| d3a7ea0790 | |||
| 49828d9379 | |||
| dd0039ca1c | |||
| 4b15b949f3 | |||
| 0671ff3de5 | |||
| 7fcbc45017 |
@@ -6,18 +6,43 @@ permissions:
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
- 'twenty/v*'
|
||||
- 'sdk/v*'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash --noprofile --norc -euo pipefail {0}
|
||||
|
||||
jobs:
|
||||
deploy-tag:
|
||||
dispatch-tag:
|
||||
timeout-minutes: 3
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Resolve dispatch event from tag family
|
||||
id: target
|
||||
env:
|
||||
REF_NAME: ${{ github.ref_name }}
|
||||
run: |
|
||||
case "$REF_NAME" in
|
||||
twenty/v*)
|
||||
event_type=auto-deploy-twenty
|
||||
;;
|
||||
sdk/v*)
|
||||
event_type=auto-publish-npm
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported tag '$REF_NAME', expected 'twenty/v*' or 'sdk/v*'." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
printf 'event_type=%s\n' "$event_type" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Repository Dispatch
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.TWENTY_INFRA_TOKEN }}
|
||||
EVENT_TYPE: ${{ steps.target.outputs.event_type }}
|
||||
REF_NAME: ${{ github.ref_name }}
|
||||
run: |
|
||||
gh api repos/twentyhq/twenty-infra/dispatches \
|
||||
-f event_type=auto-deploy-tag \
|
||||
-f "event_type=$EVENT_TYPE" \
|
||||
-f "client_payload[github][ref_name]=$REF_NAME"
|
||||
|
||||
@@ -120,7 +120,7 @@ jobs:
|
||||
echo "--- Checking package.json references correct SDK version ---"
|
||||
node -e "
|
||||
const pkg = require('./package.json');
|
||||
const sdkVersion = pkg.dependencies['twenty-sdk'];
|
||||
const sdkVersion = pkg.devDependencies['twenty-sdk'];
|
||||
if (!sdkVersion.startsWith('0.0.0-ci.')) {
|
||||
console.error('Expected twenty-sdk version to start with 0.0.0-ci., got:', sdkVersion);
|
||||
process.exit(1);
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
name: "Release: on merge"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash --noprofile --norc -euo pipefail {0}
|
||||
|
||||
jobs:
|
||||
tag_and_release:
|
||||
timeout-minutes: 10
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')
|
||||
steps:
|
||||
- name: Check PR Author
|
||||
id: check_author
|
||||
env:
|
||||
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if [[ "$PR_AUTHOR" != "github-actions[bot]" ]]; then
|
||||
echo "PR author ($PR_AUTHOR) is not trusted. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
with:
|
||||
ref: main
|
||||
|
||||
- name: Get version from PR title
|
||||
id: extract_version
|
||||
env:
|
||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
VERSION=$(printf '%s' "$PR_TITLE" | sed -n 's/.*Release v\([0-9][0-9.]*\).*/\1/p')
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "No valid version found in PR title. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
printf 'VERSION=%s\n' "$VERSION" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Push new tag
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git config --global user.name 'Github Action Deploy'
|
||||
git config --global user.email 'github-action-deploy@twenty.com'
|
||||
git tag "v${{ env.VERSION }}"
|
||||
git push origin "v${{ env.VERSION }}"
|
||||
|
||||
- uses: release-drafter/release-drafter@09c613e259eb8d4e7c81c2cb00618eb5fc4575a7 # v5
|
||||
if: contains(github.event.pull_request.labels.*.name, 'create_release')
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag: v${{ env.VERSION }}
|
||||
@@ -27,11 +27,12 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
|
||||
with:
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
# Pull base images through Google's Docker Hub mirror — avoids Docker Hub
|
||||
# rate limits and needs no credentials (this repo is public).
|
||||
- name: Configure Docker Hub mirror
|
||||
run: |
|
||||
echo '{"registry-mirrors":["https://mirror.gcr.io"]}' | sudo tee /etc/docker/daemon.json
|
||||
sudo systemctl restart docker
|
||||
- name: Run compose
|
||||
run: |
|
||||
echo "Patching docker-compose.yml..."
|
||||
@@ -102,11 +103,12 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
|
||||
with:
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
# Pull base images through Google's Docker Hub mirror — avoids Docker Hub
|
||||
# rate limits and needs no credentials (this repo is public).
|
||||
- name: Configure Docker Hub mirror
|
||||
run: |
|
||||
echo '{"registry-mirrors":["https://mirror.gcr.io"]}' | sudo tee /etc/docker/daemon.json
|
||||
sudo systemctl restart docker
|
||||
- name: Create frontend placeholder
|
||||
run: |
|
||||
mkdir -p packages/twenty-front/build
|
||||
|
||||
@@ -3,6 +3,8 @@ name: CI UI
|
||||
on:
|
||||
pull_request:
|
||||
merge_group:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -13,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
changed-files-check:
|
||||
if: github.event_name != 'merge_group'
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/changed-files.yaml
|
||||
with:
|
||||
files: |
|
||||
@@ -40,7 +42,10 @@ jobs:
|
||||
run: npx nx ${{ matrix.task }} twenty-ui
|
||||
ui-sb-build:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
if: >-
|
||||
always() &&
|
||||
(github.event_name == 'push' ||
|
||||
needs.changed-files-check.outputs.any_changed == 'true')
|
||||
timeout-minutes: 30
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -62,8 +67,7 @@ jobs:
|
||||
timeout-minutes: 30
|
||||
runs-on: ubuntu-latest
|
||||
needs: ui-sb-build
|
||||
env:
|
||||
STORYBOOK_URL: http://localhost:6007
|
||||
if: always() && needs.ui-sb-build.result == 'success'
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
@@ -82,22 +86,20 @@ jobs:
|
||||
run: |
|
||||
cd packages/twenty-ui
|
||||
npx playwright install
|
||||
- name: Serve storybook & run tests
|
||||
run: |
|
||||
npx http-server packages/twenty-ui/storybook-static --port 6007 --silent &
|
||||
timeout 30 bash -c 'until curl -sf http://localhost:6007 > /dev/null 2>&1; do sleep 1; done'
|
||||
npx nx storybook:test twenty-ui
|
||||
- name: Run storybook tests
|
||||
run: npx nx storybook:test twenty-ui
|
||||
- name: Upload screenshots for visual regression
|
||||
if: always() && !cancelled()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: argos-screenshots-twenty-ui
|
||||
path: packages/twenty-ui/screenshots
|
||||
retention-days: 1
|
||||
ci-ui-status-check:
|
||||
if: always() && !cancelled()
|
||||
timeout-minutes: 5
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
[
|
||||
changed-files-check,
|
||||
ui-task,
|
||||
ui-sb-build,
|
||||
ui-sb-test,
|
||||
]
|
||||
needs: [changed-files-check, ui-task, ui-sb-build, ui-sb-test]
|
||||
steps:
|
||||
- name: Fail job if any needs failed
|
||||
if: contains(needs.*.result, 'failure')
|
||||
|
||||
@@ -1,52 +1,33 @@
|
||||
name: Visual Regression Dispatch
|
||||
|
||||
# Uses workflow_run to dispatch visual regression to ci-privileged.
|
||||
# This runs in the context of the base repo (not the fork), so it has
|
||||
# access to secrets — making it work for external contributor PRs.
|
||||
# Dispatches visual regression processing to ci-privileged after CI completes.
|
||||
# Runs in the context of the base repo (not the fork) so it has access to secrets,
|
||||
# making it work for external contributor PRs.
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ['CI Front', 'CI UI']
|
||||
workflows: ['CI UI']
|
||||
types: [completed]
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
dispatch:
|
||||
dispatch-pr:
|
||||
if: >-
|
||||
github.event.workflow_run.event == 'pull_request' &&
|
||||
github.event.workflow_run.conclusion == 'success'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Determine project and artifact name
|
||||
id: project
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
with:
|
||||
script: |
|
||||
const workflowName = context.payload.workflow_run.name;
|
||||
if (workflowName === 'CI Front') {
|
||||
core.setOutput('project', 'twenty-front');
|
||||
core.setOutput('artifact_name', 'storybook-static');
|
||||
core.setOutput('tarball_name', 'storybook-twenty-front-tarball');
|
||||
core.setOutput('tarball_file', 'storybook-twenty-front.tar.gz');
|
||||
} else if (workflowName === 'CI UI') {
|
||||
core.setOutput('project', 'twenty-ui');
|
||||
core.setOutput('artifact_name', 'storybook-twenty-ui');
|
||||
core.setOutput('tarball_name', 'storybook-twenty-ui-tarball');
|
||||
core.setOutput('tarball_file', 'storybook-twenty-ui.tar.gz');
|
||||
} else {
|
||||
core.setFailed(`Unexpected workflow: ${workflowName}`);
|
||||
}
|
||||
|
||||
- name: Check if storybook artifact exists
|
||||
- name: Check if screenshots artifact exists
|
||||
id: check-artifact
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
with:
|
||||
script: |
|
||||
const artifactName = '${{ steps.project.outputs.artifact_name }}';
|
||||
const artifactName = 'argos-screenshots-twenty-ui';
|
||||
const runId = context.payload.workflow_run.id;
|
||||
|
||||
const { data: artifacts } = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
@@ -59,7 +40,7 @@ jobs:
|
||||
core.setOutput('exists', found ? 'true' : 'false');
|
||||
|
||||
if (!found) {
|
||||
core.info(`Artifact "${artifactName}" not found in run ${runId} — storybook build was likely skipped`);
|
||||
core.info(`Artifact "${artifactName}" not found in run ${runId} — skipping`);
|
||||
}
|
||||
|
||||
- name: Get PR number
|
||||
@@ -71,8 +52,6 @@ jobs:
|
||||
const headBranch = context.payload.workflow_run.head_branch;
|
||||
const headRepo = context.payload.workflow_run.head_repository;
|
||||
|
||||
// workflow_run.pull_requests is empty for fork PRs,
|
||||
// so fall back to searching by head label (owner:branch)
|
||||
let pullRequests = context.payload.workflow_run.pull_requests;
|
||||
let prNumber;
|
||||
|
||||
@@ -80,7 +59,7 @@ jobs:
|
||||
prNumber = pullRequests[0].number;
|
||||
} else {
|
||||
const headLabel = `${headRepo.owner.login}:${headBranch}`;
|
||||
core.info(`pull_requests is empty (likely a fork PR), searching by head label: ${headLabel}`);
|
||||
core.info(`Searching for PR by head label: ${headLabel}`);
|
||||
|
||||
const { data: prs } = await github.rest.pulls.list({
|
||||
owner: context.repo.owner,
|
||||
@@ -96,7 +75,7 @@ jobs:
|
||||
}
|
||||
|
||||
if (!prNumber) {
|
||||
core.info('No pull request found for this workflow run — skipping');
|
||||
core.info('No pull request found — skipping');
|
||||
core.setOutput('has_pr', 'false');
|
||||
return;
|
||||
}
|
||||
@@ -105,43 +84,100 @@ jobs:
|
||||
core.setOutput('has_pr', 'true');
|
||||
core.info(`PR #${prNumber}`);
|
||||
|
||||
- name: Download storybook artifact from triggering run
|
||||
- name: Compute merge-base for Argos reference
|
||||
if: steps.check-artifact.outputs.exists == 'true' && steps.pr-info.outputs.has_pr == 'true'
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
id: merge-base
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
with:
|
||||
name: ${{ steps.project.outputs.artifact_name }}
|
||||
path: storybook-static
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ github.token }}
|
||||
script: |
|
||||
const headSha = context.payload.workflow_run.head_sha;
|
||||
|
||||
- name: Package storybook
|
||||
if: steps.check-artifact.outputs.exists == 'true' && steps.pr-info.outputs.has_pr == 'true'
|
||||
run: tar -czf /tmp/${{ steps.project.outputs.tarball_file }} -C storybook-static .
|
||||
try {
|
||||
const { data: comparison } = await github.rest.repos.compareCommitsWithBasehead({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
basehead: `main...${headSha}`,
|
||||
});
|
||||
|
||||
- name: Upload storybook tarball
|
||||
if: steps.check-artifact.outputs.exists == 'true' && steps.pr-info.outputs.has_pr == 'true'
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: ${{ steps.project.outputs.tarball_name }}
|
||||
path: /tmp/${{ steps.project.outputs.tarball_file }}
|
||||
retention-days: 1
|
||||
if (comparison.merge_base_commit?.sha) {
|
||||
core.setOutput('sha', comparison.merge_base_commit.sha);
|
||||
core.info(`Merge base: ${comparison.merge_base_commit.sha}`);
|
||||
} else {
|
||||
core.info('Could not determine merge base — will skip reference_commit');
|
||||
core.setOutput('sha', '');
|
||||
}
|
||||
} catch (error) {
|
||||
core.warning(`Failed to compute merge base: ${error instanceof Error ? error.message : String(error)}`);
|
||||
core.setOutput('sha', '');
|
||||
}
|
||||
|
||||
- name: Dispatch to ci-privileged
|
||||
if: steps.check-artifact.outputs.exists == 'true' && steps.pr-info.outputs.has_pr == 'true'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.CI_PRIVILEGED_DISPATCH_TOKEN }}
|
||||
PR_NUMBER: ${{ steps.pr-info.outputs.pr_number }}
|
||||
RUN_ID: ${{ github.run_id }}
|
||||
WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
BRANCH: ${{ github.event.workflow_run.head_branch }}
|
||||
COMMIT: ${{ github.event.workflow_run.head_sha }}
|
||||
REFERENCE_COMMIT: ${{ steps.merge-base.outputs.sha }}
|
||||
run: |
|
||||
ARGS=(
|
||||
--method POST
|
||||
-f event_type=visual-regression
|
||||
-f "client_payload[pr_number]=$PR_NUMBER"
|
||||
-f "client_payload[run_id]=$WORKFLOW_RUN_ID"
|
||||
-f "client_payload[repo]=$REPOSITORY"
|
||||
-f "client_payload[branch]=$BRANCH"
|
||||
-f "client_payload[commit]=$COMMIT"
|
||||
)
|
||||
|
||||
if [ -n "$REFERENCE_COMMIT" ]; then
|
||||
ARGS+=(-f "client_payload[reference_commit]=$REFERENCE_COMMIT")
|
||||
fi
|
||||
|
||||
gh api repos/twentyhq/ci-privileged/dispatches "${ARGS[@]}"
|
||||
|
||||
dispatch-main:
|
||||
if: >-
|
||||
github.event.workflow_run.event == 'push' &&
|
||||
github.event.workflow_run.head_branch == 'main' &&
|
||||
github.event.workflow_run.conclusion == 'success'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Check if screenshots artifact exists
|
||||
id: check-artifact
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
with:
|
||||
script: |
|
||||
const runId = context.payload.workflow_run.id;
|
||||
const { data: artifacts } = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: runId,
|
||||
});
|
||||
|
||||
const found = artifacts.artifacts.some(a => a.name === 'argos-screenshots-twenty-ui');
|
||||
core.setOutput('exists', found ? 'true' : 'false');
|
||||
|
||||
if (!found) {
|
||||
core.info(`Artifact not found in run ${runId} — skipping`);
|
||||
}
|
||||
|
||||
- name: Dispatch to ci-privileged
|
||||
if: steps.check-artifact.outputs.exists == 'true'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.CI_PRIVILEGED_DISPATCH_TOKEN }}
|
||||
WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
PROJECT: ${{ steps.project.outputs.project }}
|
||||
BRANCH: ${{ github.event.workflow_run.head_branch }}
|
||||
COMMIT: ${{ github.event.workflow_run.head_sha }}
|
||||
run: |
|
||||
gh api repos/twentyhq/ci-privileged/dispatches \
|
||||
--method POST \
|
||||
-f event_type=visual-regression \
|
||||
-f "client_payload[pr_number]=$PR_NUMBER" \
|
||||
-f "client_payload[run_id]=$RUN_ID" \
|
||||
-f "client_payload[run_id]=$WORKFLOW_RUN_ID" \
|
||||
-f "client_payload[repo]=$REPOSITORY" \
|
||||
-f "client_payload[project]=$PROJECT" \
|
||||
-f "client_payload[branch]=$BRANCH" \
|
||||
-f "client_payload[commit]=$COMMIT"
|
||||
|
||||
@@ -56,3 +56,4 @@ TRANSLATION_QA_REPORT.md
|
||||
.playwright-mcp/
|
||||
.playwright-cli/
|
||||
output/playwright/
|
||||
screenshots/
|
||||
|
||||
@@ -147,13 +147,9 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
|
||||
- <a href="https://nestjs.com/"><img src="./packages/twenty-website/public/images/readme/stack-nestjs.svg" width="14" height="14"/> NestJS</a>, with <a href="https://bullmq.io/">BullMQ</a>, <a href="https://www.postgresql.org/"><img src="./packages/twenty-website/public/images/readme/stack-postgresql.svg" width="14" height="14"/> PostgreSQL</a>, <a href="https://redis.io/"><img src="./packages/twenty-website/public/images/readme/stack-redis.svg" width="14" height="14"/> Redis</a>
|
||||
- <a href="https://reactjs.org/"><img src="./packages/twenty-website/public/images/readme/stack-react.svg" width="14" height="14"/> React</a>, with <a href="https://jotai.org/">Jotai</a>, <a href="https://linaria.dev/">Linaria</a> and <a href="https://lingui.dev/">Lingui</a>
|
||||
|
||||
|
||||
|
||||
# Thanks
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.chromatic.com/"><img src="./packages/twenty-website/public/images/readme/chromatic.webp" height="28" alt="Chromatic" /></a>
|
||||
|
||||
<a href="https://greptile.com"><img src="./packages/twenty-website/public/images/readme/greptile.webp" height="28" alt="Greptile" /></a>
|
||||
|
||||
<a href="https://sentry.io/"><img src="./packages/twenty-website/public/images/readme/sentry.webp" height="28" alt="Sentry" /></a>
|
||||
@@ -161,8 +157,7 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
|
||||
<a href="https://crowdin.com/"><img src="./packages/twenty-website/public/images/readme/crowdin.webp" height="28" alt="Crowdin" /></a>
|
||||
</p>
|
||||
|
||||
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
|
||||
|
||||
Thanks to these amazing services that we use and recommend for code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
|
||||
|
||||
# Join the Community
|
||||
|
||||
|
||||
@@ -220,25 +220,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"chromatic": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "{projectRoot}",
|
||||
"commands": [
|
||||
{
|
||||
"command": "nx storybook:build {projectName}",
|
||||
"forwardAllArgs": false
|
||||
},
|
||||
"chromatic --storybook-build-dir=storybook-static {args.ci}"
|
||||
],
|
||||
"parallel": false
|
||||
},
|
||||
"configurations": {
|
||||
"ci": {
|
||||
"ci": "--exit-zero-on-changes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@nx/jest:jest": {
|
||||
"cache": true,
|
||||
"inputs": [
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
"packages/twenty-server",
|
||||
"packages/twenty-emails",
|
||||
"packages/twenty-ui",
|
||||
"packages/twenty-new-ui",
|
||||
"packages/twenty-utils",
|
||||
"packages/twenty-zapier",
|
||||
"packages/twenty-website",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "create-twenty-app",
|
||||
"version": "2.9.0",
|
||||
"version": "2.10.0",
|
||||
"description": "Command-line interface to create Twenty application",
|
||||
"main": "dist/cli.cjs",
|
||||
"bin": "dist/cli.cjs",
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
"test:watch": "vitest"
|
||||
},
|
||||
"dependencies": {
|
||||
"twenty-client-sdk": "TO-BE-GENERATED",
|
||||
"twenty-sdk": "TO-BE-GENERATED"
|
||||
"twenty-client-sdk": "TO-BE-GENERATED"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.7.2",
|
||||
@@ -26,6 +25,7 @@
|
||||
"oxlint": "^0.16.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"twenty-sdk": "TO-BE-GENERATED",
|
||||
"typescript": "^5.9.3",
|
||||
"vite-tsconfig-paths": "^4.2.1",
|
||||
"vitest": "^3.1.1"
|
||||
|
||||
@@ -33,9 +33,11 @@ const TEMPLATE_PACKAGE_JSON = {
|
||||
license: 'MIT',
|
||||
scripts: { twenty: 'twenty' },
|
||||
dependencies: {
|
||||
'twenty-sdk': '0.0.0',
|
||||
'twenty-client-sdk': '0.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'twenty-sdk': '0.0.0',
|
||||
},
|
||||
};
|
||||
|
||||
describe('copyBaseApplicationProject', () => {
|
||||
@@ -147,7 +149,7 @@ describe('copyBaseApplicationProject', () => {
|
||||
join(testAppDirectory, 'package.json'),
|
||||
);
|
||||
expect(packageJson.name).toBe('my-test-app');
|
||||
expect(packageJson.dependencies['twenty-sdk']).toBe(
|
||||
expect(packageJson.devDependencies['twenty-sdk']).toBe(
|
||||
createTwentyAppPackageJson.version,
|
||||
);
|
||||
expect(packageJson.dependencies['twenty-client-sdk']).toBe(
|
||||
|
||||
@@ -120,7 +120,8 @@ const updatePackageJson = async ({
|
||||
const packageJson = await fs.readJson(join(appDirectory, 'package.json'));
|
||||
|
||||
packageJson.name = appName;
|
||||
packageJson.dependencies['twenty-sdk'] = createTwentyAppPackageJson.version;
|
||||
packageJson.devDependencies['twenty-sdk'] =
|
||||
createTwentyAppPackageJson.version;
|
||||
packageJson.dependencies['twenty-client-sdk'] =
|
||||
createTwentyAppPackageJson.version;
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { POST_CARD_UNIVERSAL_IDENTIFIER } from '../objects/post-card.object';
|
||||
|
||||
export default defineNavigationMenuItem({
|
||||
universalIdentifier: 'c1a2b3c4-0001-4a7b-8c9d-0e1f2a3b4c5d',
|
||||
universalIdentifier: 'e8031eca-d6ea-4a4b-b828-38227dba896a',
|
||||
position: 0,
|
||||
type: NavigationMenuItemType.OBJECT,
|
||||
targetObjectUniversalIdentifier: POST_CARD_UNIVERSAL_IDENTIFIER,
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import { defineViewField } from 'twenty-sdk/define';
|
||||
import { ALL_POST_CARDS_VIEW_ID } from '../views/all-post-cards.view';
|
||||
|
||||
export default defineViewField({
|
||||
fieldMetadataUniversalIdentifier: '7b57bd63-5a4c-46ca-9d52-42c8f02d1df6',
|
||||
position: 5,
|
||||
universalIdentifier: 'cd582d11-ea21-4dc3-b9c1-0298ce3b6b54',
|
||||
viewUniversalIdentifier: ALL_POST_CARDS_VIEW_ID,
|
||||
isVisible: true,
|
||||
});
|
||||
+1
-1
@@ -43,7 +43,7 @@ A brief note on the overall tone of the conversation (collaborative, tense, expl
|
||||
- If the transcript is very short (under 200 words), provide a brief 2-3 sentence summary instead of the full structure.
|
||||
|
||||
## Saving the Summary
|
||||
After generating the summary, use \`update_callRecording\` to save it in the \`summary\` field with the format:
|
||||
After generating the summary, use \`update_one_call_recording\` to save it in the \`summary\` field with the format:
|
||||
\`\`\`json
|
||||
{ "summary": { "blocknote": null, "markdown": "<your summary>" } }
|
||||
\`\`\`
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.*
|
||||
.yarn
|
||||
|
||||
# codegen
|
||||
generated
|
||||
|
||||
# dev
|
||||
/dist/
|
||||
.twenty
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# env files
|
||||
.env*
|
||||
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
*.d.ts
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
||||
"plugins": ["typescript", "import", "unicorn"],
|
||||
"categories": {
|
||||
"correctness": "off"
|
||||
},
|
||||
"ignorePatterns": ["node_modules", "dist"],
|
||||
"rules": {
|
||||
"func-style": ["error", "declaration", { "allowArrowFunctions": true }],
|
||||
"no-console": [
|
||||
"warn",
|
||||
{ "allow": ["group", "groupCollapsed", "groupEnd"] }
|
||||
],
|
||||
"no-control-regex": "off",
|
||||
"no-debugger": "error",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-undef": "off",
|
||||
"no-unused-vars": "off",
|
||||
"no-redeclare": "off",
|
||||
|
||||
"import/no-duplicates": "error",
|
||||
|
||||
"typescript/no-redeclare": "error",
|
||||
"typescript/ban-ts-comment": "error",
|
||||
"typescript/consistent-type-imports": [
|
||||
"error",
|
||||
{
|
||||
"prefer": "type-imports",
|
||||
"fixStyle": "inline-type-imports"
|
||||
}
|
||||
],
|
||||
"typescript/explicit-function-return-type": "off",
|
||||
"typescript/explicit-module-boundary-types": "off",
|
||||
"typescript/no-empty-object-type": [
|
||||
"error",
|
||||
{
|
||||
"allowInterfaces": "with-single-extends"
|
||||
}
|
||||
],
|
||||
"typescript/no-empty-function": "off",
|
||||
"typescript/no-unused-vars": [
|
||||
"warn",
|
||||
{
|
||||
"vars": "all",
|
||||
"varsIgnorePattern": "^_",
|
||||
"args": "after-used",
|
||||
"argsIgnorePattern": "^_"
|
||||
}
|
||||
],
|
||||
"typescript/no-explicit-any": "off"
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["**/*.logic-function.ts", "**/logic-functions/**/*.ts"],
|
||||
"rules": {
|
||||
"no-restricted-imports": [
|
||||
"error",
|
||||
{
|
||||
"patterns": [
|
||||
{
|
||||
"group": ["twenty-shared", "twenty-shared/*"],
|
||||
"message": "Logic functions must not import from twenty-shared directly. Import runtime types and helpers from `twenty-sdk/logic-function` instead so the logic-function bundle stays minimal."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
nodeLinker: node-modules
|
||||
@@ -0,0 +1,114 @@
|
||||
# People Data Labs enrichment app
|
||||
|
||||
Enriches **Person** and **Company** records with [People Data Labs](https://www.peopledatalabs.com/) (PDL) data.
|
||||
|
||||
> **Status: data-model scaffold.** This package defines the fields, relation, indexes,
|
||||
> views, role, and manifest. The enrichment **logic function (the "mapper") is not yet
|
||||
> implemented** — see [What the mapper must do](#what-the-mapper-must-do).
|
||||
|
||||
---
|
||||
|
||||
## Data-model decisions
|
||||
|
||||
### Bundle scope
|
||||
|
||||
Only the core PDL company fields are defined. Premium / Comprehensive / specialized fields
|
||||
(`inferred_revenue`, `linkedin_follower_count`, employee growth/churn/tenure, parent /
|
||||
subsidiary, exec movement, top employers, `funding_details`, …) are **out of scope** for this app.
|
||||
|
||||
### Enums → SELECT / MULTI_SELECT
|
||||
|
||||
Every PDL enum that has a canonical file is a SELECT, **validated 0-missing/0-extra against
|
||||
PDL schema v34.1**:
|
||||
|
||||
| Field | Type | Options |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------ |
|
||||
| `pdlSeniority` (`job_title_levels`, array) | MULTI_SELECT | 10 |
|
||||
| `pdlFundingStages` (`funding_stages`, array) | MULTI_SELECT | 29 |
|
||||
| `pdlIndustry` / `pdlJobCompanyIndustry` (`industry`) | SELECT | 147 |
|
||||
| `pdlJobTitleSubRole` (`job_title_sub_role`) | SELECT | 106 |
|
||||
| `pdlJobTitleClass`, `pdlInferredSalary`, `pdlSex`, `pdlCompanyType`, `pdlSizeRange`, `pdlJobCompanySize`, `pdlLatestFundingStage`, `pdlLocationContinent`, `pdlLocationMetro`, `pdlMicExchange` | SELECT | 5 / 11 / 2 / 6 / 8 / 8 / 29 / 7 / 384 / 70 |
|
||||
|
||||
- Option `value`s are normalized to **GraphQL enum names** (`united states` → `UNITED_STATES`):
|
||||
uppercase, accents stripped, non-alphanumeric → `_`, digit-leading prefixed.
|
||||
- Option `universalIdentifier`s are **unique per field** (shared enums like industry get a
|
||||
separate id-set per field).
|
||||
- **Stays `TEXT`** (no canonical PDL enum file exists): `pdlIndustryDetail` (`industry_v2`),
|
||||
`pdlJobOnetCode`, `pdlLocationRegion`.
|
||||
|
||||
### Standard-field mapping
|
||||
|
||||
`pdl*` shadows are **removed** where an equivalent standard field exists; the mapper writes
|
||||
the standard field instead:
|
||||
|
||||
| Object | Removed shadow → standard target |
|
||||
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Person | `pdlLinkedinUrl`→`linkedinLink`, `pdlJobTitle`→`jobTitle`, `pdlFullName`→`name`, `pdlWorkEmail`/`pdlPersonalEmails`→`emails`, `pdlMobilePhone`/`pdlPhoneNumbers`→`phones` |
|
||||
| Company | `pdlLinkedinUrl`→`linkedinLink`, `pdlWebsite`→`domainName`, `pdlDisplayName`→`name` |
|
||||
|
||||
Shadows are **kept** where no reliable standard field is available: `pdlEmployeeCount`,
|
||||
`pdlTwitterUrl`.
|
||||
_Trade-off:_ PDL's work/personal-email and mobile/other-phone distinction is dropped (folded
|
||||
into the standard bags).
|
||||
|
||||
### Location → ADDRESS composite
|
||||
|
||||
- **Company** location → the **standard `address`** composite (street/city/state/postcode/country/geo).
|
||||
- **Person** has no standard address field → dedicated **`pdlLocation` (ADDRESS)**.
|
||||
- `pdlLocationMetro` (both) and `pdlLocationContinent` (company) stay SELECT — ADDRESS has no slot.
|
||||
_Trade-off:_ ADDRESS `country` is free text, so the country SELECT was dropped.
|
||||
|
||||
### Relation
|
||||
|
||||
Dedicated **`pdlCurrentCompany`** (Person `MANY_TO_ONE` → Company) ↔ inverse
|
||||
**`pdlCurrentEmployees`** (Company `ONE_TO_MANY` → Person). Deliberately **not** the standard
|
||||
`company` relation, so PDL's detected employer can't overwrite the user's CRM account link.
|
||||
|
||||
### Enrichment metadata
|
||||
|
||||
- `pdlId` — PDL record id (re-enrich by id: more precise than by email).
|
||||
- `pdlLikelihood` (Person, NUMBER) — PDL match confidence 1–10.
|
||||
- `pdlEnrichmentStatus` (SELECT: `MATCHED` / `NOT_FOUND` / `ERROR`) — distinguishes
|
||||
"no match" from "never tried" (drives re-enrichment scheduling).
|
||||
- `pdlLastEnrichedAt` (DATE_TIME), `pdlRawPayload` (RAW_JSON, full response).
|
||||
|
||||
### Other
|
||||
|
||||
- `pdlTotalFunding` is `CURRENCY` (mapper must convert the bare USD float → micros).
|
||||
- **Indexes**: `pdlId` and `pdlLastEnrichedAt` on both objects.
|
||||
- **Views**: a curated "People Data Labs" TABLE view per object.
|
||||
- **Role**: read/update on Person & Company (object-level; tighten to field-scoped later).
|
||||
|
||||
---
|
||||
|
||||
## What the mapper must do
|
||||
|
||||
The logic function (to be built) must:
|
||||
|
||||
**Orchestration**
|
||||
|
||||
1. Trigger via manual command-menu action / record create / batch (TBD).
|
||||
2. Call PDL Person and/or Company Enrichment with `PDL_API_KEY`; pass `min_likelihood` /
|
||||
`required_fields` to control match quality.
|
||||
3. On `200` → write fields + set `pdlEnrichmentStatus = MATCHED`; on `404` →
|
||||
`NOT_FOUND`; on error → `ERROR`.
|
||||
4. Respect PDL rate limits (queue / throttle on `429`).
|
||||
5. **TTL guard**: skip re-enrichment if `pdlLastEnrichedAt` is recent; prefer re-enriching by `pdlId`.
|
||||
|
||||
**Field writing**
|
||||
|
||||
6. Write **standard fields** (fill-only-if-empty to avoid overwriting user data):
|
||||
Person `name`, `emails`, `phones`, `linkedinLink`, `jobTitle`; Company `name`,
|
||||
`domainName`, `linkedinLink`, `address`.
|
||||
7. Write `pdl*` fields for everything else.
|
||||
8. **SELECT guard**: only write a SELECT/MULTI_SELECT value if the normalized value exists in
|
||||
the field's option set; otherwise skip and keep it in `pdlRawPayload` (handles PDL schema
|
||||
versions newer than v34.1). Use the same normalization as the option `value`s.
|
||||
9. **MULTI_SELECT** arrays: `job_title_levels` → `pdlSeniority`; `funding_stages` → `pdlFundingStages`.
|
||||
10. **CURRENCY**: `total_funding_raised` (USD float) → `{ amountMicros: value × 1_000_000, currencyCode: 'USD' }`.
|
||||
11. **ADDRESS**: split PDL `location.*` into the composite — Company → standard `address`,
|
||||
Person → `pdlLocation`.
|
||||
12. **Relation**: resolve `job_company_id` → find/upsert a Company record → link `pdlCurrentCompany`.
|
||||
13. **Dates**: handle partial PDL dates (`YYYY`, `YYYY-MM`) for `job_start_date`,
|
||||
`last_funding_date`, `birth_date`.
|
||||
14. Always set `pdlId`, `pdlLastEnrichedAt`, `pdlRawPayload`, `pdlLikelihood` (person).
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "people-data-labs",
|
||||
"version": "0.1.0",
|
||||
"description": "People Data Labs enrichment app for Twenty",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^24.5.0",
|
||||
"npm": "please-use-yarn",
|
||||
"yarn": ">=4.0.2"
|
||||
},
|
||||
"keywords": [
|
||||
"twenty-app"
|
||||
],
|
||||
"packageManager": "yarn@4.9.2",
|
||||
"scripts": {
|
||||
"twenty": "twenty",
|
||||
"lint": "oxlint -c .oxlintrc.json .",
|
||||
"lint:fix": "oxlint --fix -c .oxlintrc.json .",
|
||||
"test": "vitest run --passWithNoTests",
|
||||
"test:watch": "vitest"
|
||||
},
|
||||
"dependencies": {
|
||||
"twenty-client-sdk": "2.4.0",
|
||||
"twenty-sdk": "2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.7.2",
|
||||
"@types/react": "^19.0.0",
|
||||
"oxlint": "^0.16.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vite-tsconfig-paths": "^4.2.1",
|
||||
"vitest": "^3.1.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { defineApplication } from 'twenty-sdk/define';
|
||||
|
||||
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineApplication({
|
||||
universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER,
|
||||
displayName: 'People Data Labs',
|
||||
description: 'Enrich People and Companies with People Data Labs data.',
|
||||
serverVariables: {
|
||||
PDL_API_KEY: {
|
||||
description: 'People Data Labs API key',
|
||||
isSecret: true,
|
||||
isRequired: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import { type SelectOptionMeta } from 'src/types/select-option-meta.type';
|
||||
|
||||
export const ENRICHMENT_STATUS_OPTIONS: readonly SelectOptionMeta[] = [
|
||||
{
|
||||
key: 'matched',
|
||||
value: 'MATCHED',
|
||||
label: 'Matched',
|
||||
color: 'green',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
key: 'notFound',
|
||||
value: 'NOT_FOUND',
|
||||
label: 'No Match',
|
||||
color: 'gray',
|
||||
position: 1,
|
||||
},
|
||||
{ key: 'error', value: 'ERROR', label: 'Error', color: 'red', position: 2 },
|
||||
];
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
import { type SelectOptionMeta } from 'src/types/select-option-meta.type';
|
||||
|
||||
export const FUNDING_STAGE_OPTIONS: readonly SelectOptionMeta[] = [
|
||||
{
|
||||
key: 'angel',
|
||||
value: 'ANGEL',
|
||||
label: 'Angel',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
key: 'convertibleNote',
|
||||
value: 'CONVERTIBLE_NOTE',
|
||||
label: 'Convertible Note',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
key: 'corporateRound',
|
||||
value: 'CORPORATE_ROUND',
|
||||
label: 'Corporate Round',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
key: 'debtFinancing',
|
||||
value: 'DEBT_FINANCING',
|
||||
label: 'Debt Financing',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
key: 'equityCrowdfunding',
|
||||
value: 'EQUITY_CROWDFUNDING',
|
||||
label: 'Equity Crowdfunding',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
key: 'fundingRound',
|
||||
value: 'FUNDING_ROUND',
|
||||
label: 'Funding Round',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{ key: 'grant', value: 'GRANT', label: 'Grant', color: 'pink', position: 6 },
|
||||
{
|
||||
key: 'initialCoinOffering',
|
||||
value: 'INITIAL_COIN_OFFERING',
|
||||
label: 'Initial Coin Offering',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
key: 'nonEquityAssistance',
|
||||
value: 'NON_EQUITY_ASSISTANCE',
|
||||
label: 'Non-Equity Assistance',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
key: 'postIpoDebt',
|
||||
value: 'POST_IPO_DEBT',
|
||||
label: 'Post-IPO Debt',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
{
|
||||
key: 'postIpoEquity',
|
||||
value: 'POST_IPO_EQUITY',
|
||||
label: 'Post-IPO Equity',
|
||||
color: 'violet',
|
||||
position: 10,
|
||||
},
|
||||
{
|
||||
key: 'postIpoSecondary',
|
||||
value: 'POST_IPO_SECONDARY',
|
||||
label: 'Post-IPO Secondary',
|
||||
color: 'gold',
|
||||
position: 11,
|
||||
},
|
||||
{
|
||||
key: 'preSeed',
|
||||
value: 'PRE_SEED',
|
||||
label: 'Pre-Seed',
|
||||
color: 'turquoise',
|
||||
position: 12,
|
||||
},
|
||||
{
|
||||
key: 'privateEquity',
|
||||
value: 'PRIVATE_EQUITY',
|
||||
label: 'Private Equity',
|
||||
color: 'crimson',
|
||||
position: 13,
|
||||
},
|
||||
{
|
||||
key: 'productCrowdfunding',
|
||||
value: 'PRODUCT_CROWDFUNDING',
|
||||
label: 'Product Crowdfunding',
|
||||
color: 'sky',
|
||||
position: 14,
|
||||
},
|
||||
{
|
||||
key: 'secondaryMarket',
|
||||
value: 'SECONDARY_MARKET',
|
||||
label: 'Secondary Market',
|
||||
color: 'amber',
|
||||
position: 15,
|
||||
},
|
||||
{ key: 'seed', value: 'SEED', label: 'Seed', color: 'plum', position: 16 },
|
||||
{
|
||||
key: 'seriesA',
|
||||
value: 'SERIES_A',
|
||||
label: 'Series A',
|
||||
color: 'grass',
|
||||
position: 17,
|
||||
},
|
||||
{
|
||||
key: 'seriesB',
|
||||
value: 'SERIES_B',
|
||||
label: 'Series B',
|
||||
color: 'tomato',
|
||||
position: 18,
|
||||
},
|
||||
{
|
||||
key: 'seriesC',
|
||||
value: 'SERIES_C',
|
||||
label: 'Series C',
|
||||
color: 'iris',
|
||||
position: 19,
|
||||
},
|
||||
{
|
||||
key: 'seriesD',
|
||||
value: 'SERIES_D',
|
||||
label: 'Series D',
|
||||
color: 'mint',
|
||||
position: 20,
|
||||
},
|
||||
{
|
||||
key: 'seriesE',
|
||||
value: 'SERIES_E',
|
||||
label: 'Series E',
|
||||
color: 'ruby',
|
||||
position: 21,
|
||||
},
|
||||
{
|
||||
key: 'seriesF',
|
||||
value: 'SERIES_F',
|
||||
label: 'Series F',
|
||||
color: 'bronze',
|
||||
position: 22,
|
||||
},
|
||||
{
|
||||
key: 'seriesG',
|
||||
value: 'SERIES_G',
|
||||
label: 'Series G',
|
||||
color: 'jade',
|
||||
position: 23,
|
||||
},
|
||||
{
|
||||
key: 'seriesH',
|
||||
value: 'SERIES_H',
|
||||
label: 'Series H',
|
||||
color: 'gray',
|
||||
position: 24,
|
||||
},
|
||||
{
|
||||
key: 'seriesI',
|
||||
value: 'SERIES_I',
|
||||
label: 'Series I',
|
||||
color: 'blue',
|
||||
position: 25,
|
||||
},
|
||||
{
|
||||
key: 'seriesJ',
|
||||
value: 'SERIES_J',
|
||||
label: 'Series J',
|
||||
color: 'red',
|
||||
position: 26,
|
||||
},
|
||||
{
|
||||
key: 'seriesUnknown',
|
||||
value: 'SERIES_UNKNOWN',
|
||||
label: 'Series Unknown',
|
||||
color: 'green',
|
||||
position: 27,
|
||||
},
|
||||
{
|
||||
key: 'undisclosed',
|
||||
value: 'UNDISCLOSED',
|
||||
label: 'Undisclosed',
|
||||
color: 'orange',
|
||||
position: 28,
|
||||
},
|
||||
];
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,60 @@
|
||||
import { type SelectOptionMeta } from 'src/types/select-option-meta.type';
|
||||
|
||||
export const SIZE_OPTIONS: readonly SelectOptionMeta[] = [
|
||||
{
|
||||
key: 'oneToTen',
|
||||
value: 'ONE_TO_TEN',
|
||||
label: '1-10',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
key: 'elevenToFifty',
|
||||
value: 'ELEVEN_TO_FIFTY',
|
||||
label: '11-50',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
key: 'fiftyOneToTwoHundred',
|
||||
value: 'FIFTY_ONE_TO_TWO_HUNDRED',
|
||||
label: '51-200',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
key: 'twoHundredOneToFiveHundred',
|
||||
value: 'TWO_HUNDRED_ONE_TO_FIVE_HUNDRED',
|
||||
label: '201-500',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
key: 'fiveHundredOneToOneThousand',
|
||||
value: 'FIVE_HUNDRED_ONE_TO_ONE_THOUSAND',
|
||||
label: '501-1000',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
key: 'oneThousandOneToFiveThousand',
|
||||
value: 'ONE_THOUSAND_ONE_TO_FIVE_THOUSAND',
|
||||
label: '1001-5000',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
key: 'fiveThousandOneToTenThousand',
|
||||
value: 'FIVE_THOUSAND_ONE_TO_TEN_THOUSAND',
|
||||
label: '5001-10000',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
key: 'tenThousandOnePlus',
|
||||
value: 'TEN_THOUSAND_ONE_PLUS',
|
||||
label: '10001+',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
];
|
||||
+1629
File diff suppressed because it is too large
Load Diff
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAffiliatedProfiles,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlAffiliatedProfiles',
|
||||
label: 'Affiliated Profiles',
|
||||
description: 'Affiliated company profiles returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAlternativeDomains,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlAlternativeDomains',
|
||||
label: 'Alternative Domains',
|
||||
description: 'Alternative domains returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAlternativeNames,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlAlternativeNames',
|
||||
label: 'Alternative Names',
|
||||
description: 'Alternative names returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlCompanyType,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlCompanyType',
|
||||
label: 'Company Type',
|
||||
description: 'People Data Labs canonical company type.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.public,
|
||||
value: 'PUBLIC',
|
||||
label: 'Public',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.private,
|
||||
value: 'PRIVATE',
|
||||
label: 'Private',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.publicSubsidiary,
|
||||
value: 'PUBLIC_SUBSIDIARY',
|
||||
label: 'Public Subsidiary',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.educational,
|
||||
value: 'EDUCATIONAL',
|
||||
label: 'Educational',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.government,
|
||||
value: 'GOVERNMENT',
|
||||
label: 'Government',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType.nonprofit,
|
||||
value: 'NONPROFIT',
|
||||
label: 'Nonprofit',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
],
|
||||
});
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
RelationType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlCurrentEmployees,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.RELATION,
|
||||
name: 'pdlCurrentEmployees',
|
||||
label: 'PDL Current Employees',
|
||||
description:
|
||||
'People whose current employer is this company, per People Data Labs.',
|
||||
relationTargetObjectMetadataUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
relationTargetFieldMetadataUniversalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlCurrentCompany,
|
||||
universalSettings: {
|
||||
relationType: RelationType.ONE_TO_MANY,
|
||||
},
|
||||
icon: 'IconUsers',
|
||||
});
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEmployeeCountByCountry,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlEmployeeCountByCountry',
|
||||
label: 'Employee Count by Country',
|
||||
description:
|
||||
'Employee count broken down by country returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEmployeeCount,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlEmployeeCount',
|
||||
label: 'Employees',
|
||||
description: 'Exact employee count returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { ENRICHMENT_STATUS_OPTIONS } from 'src/constants/enrichment-status-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEnrichmentStatus,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlEnrichmentStatus',
|
||||
label: 'Enrichment Status',
|
||||
description: 'Outcome of the latest People Data Labs enrichment attempt.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
ENRICHMENT_STATUS_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyEnrichmentStatus,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFacebookUrl,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlFacebookUrl',
|
||||
label: 'Facebook',
|
||||
description: 'Facebook page returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFoundedYear,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlFoundedYear',
|
||||
label: 'Founded Year',
|
||||
description: 'Founding year returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { FUNDING_STAGE_OPTIONS } from 'src/constants/funding-stage-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFundingStages,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.MULTI_SELECT,
|
||||
name: 'pdlFundingStages',
|
||||
label: 'Funding Stages',
|
||||
description: 'People Data Labs canonical funding stages.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
FUNDING_STAGE_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.fundingStage,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlHeadline,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlHeadline',
|
||||
label: 'Headline',
|
||||
description: 'People Data Labs company headline or summary.',
|
||||
isNullable: true,
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlId,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlId',
|
||||
label: 'PDL ID',
|
||||
description: 'People Data Labs company identifier.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlIndustryDetail,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlIndustryDetail',
|
||||
label: 'Industry (detailed)',
|
||||
description: 'Detailed People Data Labs industry v2 value.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlIndustry,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlIndustry',
|
||||
label: 'Industry',
|
||||
description: 'People Data Labs canonical industry.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
INDUSTRY_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyIndustry,
|
||||
),
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLastEnrichedAt,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.DATE_TIME,
|
||||
name: 'pdlLastEnrichedAt',
|
||||
label: 'Last Enriched At',
|
||||
description: 'Timestamp of the latest People Data Labs enrichment.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLastFundingDate,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.DATE,
|
||||
name: 'pdlLastFundingDate',
|
||||
label: 'Last Funding Date',
|
||||
description: 'Date of the latest funding round returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { FUNDING_STAGE_OPTIONS } from 'src/constants/funding-stage-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLatestFundingStage,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlLatestFundingStage',
|
||||
label: 'Latest Funding Stage',
|
||||
description: 'People Data Labs canonical latest funding stage.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
FUNDING_STAGE_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.fundingStage,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLinkedinId,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlLinkedinId',
|
||||
label: 'LinkedIn ID',
|
||||
description: 'LinkedIn identifier returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLocationContinent,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlLocationContinent',
|
||||
label: 'Continent',
|
||||
description: 'People Data Labs canonical continent.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.africa,
|
||||
value: 'AFRICA',
|
||||
label: 'Africa',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.antarctica,
|
||||
value: 'ANTARCTICA',
|
||||
label: 'Antarctica',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent.asia,
|
||||
value: 'ASIA',
|
||||
label: 'Asia',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.europe,
|
||||
value: 'EUROPE',
|
||||
label: 'Europe',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.northAmerica,
|
||||
value: 'NORTH_AMERICA',
|
||||
label: 'North America',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.oceania,
|
||||
value: 'OCEANIA',
|
||||
label: 'Oceania',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent
|
||||
.southAmerica,
|
||||
value: 'SOUTH_AMERICA',
|
||||
label: 'South America',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
],
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { METRO_OPTIONS } from 'src/constants/metro-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLocationMetro,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlLocationMetro',
|
||||
label: 'Metro Area',
|
||||
description: 'People Data Labs canonical metro area.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
METRO_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationMetro,
|
||||
),
|
||||
});
|
||||
+513
@@ -0,0 +1,513 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlMicExchange,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlMicExchange',
|
||||
label: 'Stock Exchange (MIC)',
|
||||
description: 'People Data Labs canonical market identifier code.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.aqse,
|
||||
value: 'AQSE',
|
||||
label: 'AQSE',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.arcx,
|
||||
value: 'ARCX',
|
||||
label: 'ARCX',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.asex,
|
||||
value: 'ASEX',
|
||||
label: 'ASEX',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.bcxe,
|
||||
value: 'BCXE',
|
||||
label: 'BCXE',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.bvmf,
|
||||
value: 'BVMF',
|
||||
label: 'BVMF',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.dsmd,
|
||||
value: 'DSMD',
|
||||
label: 'DSMD',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.misx,
|
||||
value: 'MISX',
|
||||
label: 'MISX',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.neoe,
|
||||
value: 'NEOE',
|
||||
label: 'NEOE',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xams,
|
||||
value: 'XAMS',
|
||||
label: 'XAMS',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xase,
|
||||
value: 'XASE',
|
||||
label: 'XASE',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xasx,
|
||||
value: 'XASX',
|
||||
label: 'XASX',
|
||||
color: 'violet',
|
||||
position: 10,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xber,
|
||||
value: 'XBER',
|
||||
label: 'XBER',
|
||||
color: 'gold',
|
||||
position: 11,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbkk,
|
||||
value: 'XBKK',
|
||||
label: 'XBKK',
|
||||
color: 'turquoise',
|
||||
position: 12,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbog,
|
||||
value: 'XBOG',
|
||||
label: 'XBOG',
|
||||
color: 'crimson',
|
||||
position: 13,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbom,
|
||||
value: 'XBOM',
|
||||
label: 'XBOM',
|
||||
color: 'sky',
|
||||
position: 14,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbru,
|
||||
value: 'XBRU',
|
||||
label: 'XBRU',
|
||||
color: 'amber',
|
||||
position: 15,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbsp,
|
||||
value: 'XBSP',
|
||||
label: 'XBSP',
|
||||
color: 'plum',
|
||||
position: 16,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbud,
|
||||
value: 'XBUD',
|
||||
label: 'XBUD',
|
||||
color: 'grass',
|
||||
position: 17,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xbue,
|
||||
value: 'XBUE',
|
||||
label: 'XBUE',
|
||||
color: 'tomato',
|
||||
position: 18,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xcai,
|
||||
value: 'XCAI',
|
||||
label: 'XCAI',
|
||||
color: 'iris',
|
||||
position: 19,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xcbo,
|
||||
value: 'XCBO',
|
||||
label: 'XCBO',
|
||||
color: 'mint',
|
||||
position: 20,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xcnq,
|
||||
value: 'XCNQ',
|
||||
label: 'XCNQ',
|
||||
color: 'ruby',
|
||||
position: 21,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xcse,
|
||||
value: 'XCSE',
|
||||
label: 'XCSE',
|
||||
color: 'bronze',
|
||||
position: 22,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xdfm,
|
||||
value: 'XDFM',
|
||||
label: 'XDFM',
|
||||
color: 'jade',
|
||||
position: 23,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xdub,
|
||||
value: 'XDUB',
|
||||
label: 'XDUB',
|
||||
color: 'gray',
|
||||
position: 24,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xdus,
|
||||
value: 'XDUS',
|
||||
label: 'XDUS',
|
||||
color: 'blue',
|
||||
position: 25,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xeqy,
|
||||
value: 'XEQY',
|
||||
label: 'XEQY',
|
||||
color: 'red',
|
||||
position: 26,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xfra,
|
||||
value: 'XFRA',
|
||||
label: 'XFRA',
|
||||
color: 'green',
|
||||
position: 27,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xham,
|
||||
value: 'XHAM',
|
||||
label: 'XHAM',
|
||||
color: 'orange',
|
||||
position: 28,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xhel,
|
||||
value: 'XHEL',
|
||||
label: 'XHEL',
|
||||
color: 'purple',
|
||||
position: 29,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xhkg,
|
||||
value: 'XHKG',
|
||||
label: 'XHKG',
|
||||
color: 'yellow',
|
||||
position: 30,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xice,
|
||||
value: 'XICE',
|
||||
label: 'XICE',
|
||||
color: 'pink',
|
||||
position: 31,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xidx,
|
||||
value: 'XIDX',
|
||||
label: 'XIDX',
|
||||
color: 'cyan',
|
||||
position: 32,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xjpx,
|
||||
value: 'XJPX',
|
||||
label: 'XJPX',
|
||||
color: 'brown',
|
||||
position: 33,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xjse,
|
||||
value: 'XJSE',
|
||||
label: 'XJSE',
|
||||
color: 'lime',
|
||||
position: 34,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xkls,
|
||||
value: 'XKLS',
|
||||
label: 'XKLS',
|
||||
color: 'violet',
|
||||
position: 35,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xkos,
|
||||
value: 'XKOS',
|
||||
label: 'XKOS',
|
||||
color: 'gold',
|
||||
position: 36,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xkrx,
|
||||
value: 'XKRX',
|
||||
label: 'XKRX',
|
||||
color: 'turquoise',
|
||||
position: 37,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xkuw,
|
||||
value: 'XKUW',
|
||||
label: 'XKUW',
|
||||
color: 'crimson',
|
||||
position: 38,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xlis,
|
||||
value: 'XLIS',
|
||||
label: 'XLIS',
|
||||
color: 'sky',
|
||||
position: 39,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xlon,
|
||||
value: 'XLON',
|
||||
label: 'XLON',
|
||||
color: 'amber',
|
||||
position: 40,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xmad,
|
||||
value: 'XMAD',
|
||||
label: 'XMAD',
|
||||
color: 'plum',
|
||||
position: 41,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xmex,
|
||||
value: 'XMEX',
|
||||
label: 'XMEX',
|
||||
color: 'grass',
|
||||
position: 42,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xmil,
|
||||
value: 'XMIL',
|
||||
label: 'XMIL',
|
||||
color: 'tomato',
|
||||
position: 43,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xmun,
|
||||
value: 'XMUN',
|
||||
label: 'XMUN',
|
||||
color: 'iris',
|
||||
position: 44,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xnas,
|
||||
value: 'XNAS',
|
||||
label: 'XNAS',
|
||||
color: 'mint',
|
||||
position: 45,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xnse,
|
||||
value: 'XNSE',
|
||||
label: 'XNSE',
|
||||
color: 'ruby',
|
||||
position: 46,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xnys,
|
||||
value: 'XNYS',
|
||||
label: 'XNYS',
|
||||
color: 'bronze',
|
||||
position: 47,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xnze,
|
||||
value: 'XNZE',
|
||||
label: 'XNZE',
|
||||
color: 'jade',
|
||||
position: 48,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xosl,
|
||||
value: 'XOSL',
|
||||
label: 'XOSL',
|
||||
color: 'gray',
|
||||
position: 49,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xotc,
|
||||
value: 'XOTC',
|
||||
label: 'XOTC',
|
||||
color: 'blue',
|
||||
position: 50,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xpar,
|
||||
value: 'XPAR',
|
||||
label: 'XPAR',
|
||||
color: 'red',
|
||||
position: 51,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xpra,
|
||||
value: 'XPRA',
|
||||
label: 'XPRA',
|
||||
color: 'green',
|
||||
position: 52,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xris,
|
||||
value: 'XRIS',
|
||||
label: 'XRIS',
|
||||
color: 'orange',
|
||||
position: 53,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xsau,
|
||||
value: 'XSAU',
|
||||
label: 'XSAU',
|
||||
color: 'purple',
|
||||
position: 54,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xses,
|
||||
value: 'XSES',
|
||||
label: 'XSES',
|
||||
color: 'yellow',
|
||||
position: 55,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xsgo,
|
||||
value: 'XSGO',
|
||||
label: 'XSGO',
|
||||
color: 'pink',
|
||||
position: 56,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xshe,
|
||||
value: 'XSHE',
|
||||
label: 'XSHE',
|
||||
color: 'cyan',
|
||||
position: 57,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xshg,
|
||||
value: 'XSHG',
|
||||
label: 'XSHG',
|
||||
color: 'brown',
|
||||
position: 58,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xstc,
|
||||
value: 'XSTC',
|
||||
label: 'XSTC',
|
||||
color: 'lime',
|
||||
position: 59,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xsto,
|
||||
value: 'XSTO',
|
||||
label: 'XSTO',
|
||||
color: 'violet',
|
||||
position: 60,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xstu,
|
||||
value: 'XSTU',
|
||||
label: 'XSTU',
|
||||
color: 'gold',
|
||||
position: 61,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xswx,
|
||||
value: 'XSWX',
|
||||
label: 'XSWX',
|
||||
color: 'turquoise',
|
||||
position: 62,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xtae,
|
||||
value: 'XTAE',
|
||||
label: 'XTAE',
|
||||
color: 'crimson',
|
||||
position: 63,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xtai,
|
||||
value: 'XTAI',
|
||||
label: 'XTAI',
|
||||
color: 'sky',
|
||||
position: 64,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xtal,
|
||||
value: 'XTAL',
|
||||
label: 'XTAL',
|
||||
color: 'amber',
|
||||
position: 65,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xtse,
|
||||
value: 'XTSE',
|
||||
label: 'XTSE',
|
||||
color: 'plum',
|
||||
position: 66,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xtsx,
|
||||
value: 'XTSX',
|
||||
label: 'XTSX',
|
||||
color: 'grass',
|
||||
position: 67,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xwar,
|
||||
value: 'XWAR',
|
||||
label: 'XWAR',
|
||||
color: 'tomato',
|
||||
position: 68,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange.xwbo,
|
||||
value: 'XWBO',
|
||||
label: 'XWBO',
|
||||
color: 'iris',
|
||||
position: 69,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlNaics,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlNaics',
|
||||
label: 'NAICS Codes',
|
||||
description: 'NAICS classification codes returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlNumberFundingRounds,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlNumberFundingRounds',
|
||||
label: 'Number of Funding Rounds',
|
||||
description: 'Number of funding rounds returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlRawPayload,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlRawPayload',
|
||||
label: 'PDL Raw Payload',
|
||||
description: 'Full People Data Labs company enrichment response.',
|
||||
isNullable: true,
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSic,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlSic',
|
||||
label: 'SIC Codes',
|
||||
description: 'SIC classification codes returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { SIZE_OPTIONS } from 'src/constants/size-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSizeRange,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlSizeRange',
|
||||
label: 'Employee Range',
|
||||
description: 'People Data Labs canonical self-reported employee range.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
SIZE_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.sizeRange,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSummary,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlSummary',
|
||||
label: 'Summary',
|
||||
description: 'Company summary returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTags,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlTags',
|
||||
label: 'Tags',
|
||||
description: 'Tags returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTicker,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlTicker',
|
||||
label: 'Ticker',
|
||||
description: 'Company ticker returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTotalFunding,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.CURRENCY,
|
||||
name: 'pdlTotalFunding',
|
||||
label: 'Total Funding Raised',
|
||||
description: 'Total funding raised in USD returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTwitterUrl,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlTwitterUrl',
|
||||
label: 'X / Twitter',
|
||||
description: 'X or Twitter company profile returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlBirthDate,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.DATE,
|
||||
name: 'pdlBirthDate',
|
||||
label: 'Birth Date',
|
||||
description: 'Birth date returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlBirthYear,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlBirthYear',
|
||||
label: 'Birth Year',
|
||||
description: 'Birth year returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlCertifications,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlCertifications',
|
||||
label: 'Certifications',
|
||||
description: 'Certifications returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
RelationType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlCurrentCompany,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RELATION,
|
||||
name: 'pdlCurrentCompany',
|
||||
label: 'PDL Current Company',
|
||||
description: 'Current employer detected by People Data Labs.',
|
||||
relationTargetObjectMetadataUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||
relationTargetFieldMetadataUniversalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlCurrentEmployees,
|
||||
universalSettings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
},
|
||||
icon: 'IconBuilding',
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlEducation,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlEducation',
|
||||
label: 'Education History',
|
||||
description: 'Education history returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { ENRICHMENT_STATUS_OPTIONS } from 'src/constants/enrichment-status-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlEnrichmentStatus,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlEnrichmentStatus',
|
||||
label: 'Enrichment Status',
|
||||
description: 'Outcome of the latest People Data Labs enrichment attempt.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
ENRICHMENT_STATUS_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personEnrichmentStatus,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlExperience,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlExperience',
|
||||
label: 'Experience History',
|
||||
description: 'Experience history returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlFacebookUrl,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlFacebookUrl',
|
||||
label: 'Facebook',
|
||||
description: 'Facebook profile returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlGithubUrl,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlGithubUrl',
|
||||
label: 'GitHub',
|
||||
description: 'GitHub profile returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlHeadline,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlHeadline',
|
||||
label: 'Headline',
|
||||
description: 'People Data Labs person headline or job summary.',
|
||||
isNullable: true,
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlId,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlId',
|
||||
label: 'PDL ID',
|
||||
description: 'People Data Labs person identifier.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlIndustry,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlIndustry',
|
||||
label: 'Industry',
|
||||
description: 'People Data Labs canonical industry.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
INDUSTRY_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personIndustry,
|
||||
),
|
||||
});
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlInferredSalary,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlInferredSalary',
|
||||
label: 'Inferred Salary (range)',
|
||||
description: 'People Data Labs canonical inferred salary range.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.under20000,
|
||||
value: 'UNDER_20000',
|
||||
label: '<20,000',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from20000To25000,
|
||||
value: 'FROM_20000_TO_25000',
|
||||
label: '20,000-25,000',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from25000To35000,
|
||||
value: 'FROM_25000_TO_35000',
|
||||
label: '25,000-35,000',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from35000To45000,
|
||||
value: 'FROM_35000_TO_45000',
|
||||
label: '35,000-45,000',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from45000To55000,
|
||||
value: 'FROM_45000_TO_55000',
|
||||
label: '45,000-55,000',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from55000To70000,
|
||||
value: 'FROM_55000_TO_70000',
|
||||
label: '55,000-70,000',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from70000To85000,
|
||||
value: 'FROM_70000_TO_85000',
|
||||
label: '70,000-85,000',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from85000To100000,
|
||||
value: 'FROM_85000_TO_100000',
|
||||
label: '85,000-100,000',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from100000To150000,
|
||||
value: 'FROM_100000_TO_150000',
|
||||
label: '100,000-150,000',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.from150000To250000,
|
||||
value: 'FROM_150000_TO_250000',
|
||||
label: '150,000-250,000',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary
|
||||
.over250000,
|
||||
value: 'OVER_250000',
|
||||
label: '>250,000',
|
||||
color: 'violet',
|
||||
position: 10,
|
||||
},
|
||||
],
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlInterests,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlInterests',
|
||||
label: 'Interests',
|
||||
description: 'Interests returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanyId,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlJobCompanyId',
|
||||
label: 'Current Company PDL ID',
|
||||
description: 'Current company PDL identifier returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanyIndustry,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlJobCompanyIndustry',
|
||||
label: 'Current Company Industry',
|
||||
description:
|
||||
'Current company canonical industry returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
INDUSTRY_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobCompanyIndustry,
|
||||
),
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanyLinkedinUrl,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlJobCompanyLinkedinUrl',
|
||||
label: 'Current Company LinkedIn',
|
||||
description: 'Current company LinkedIn returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanyName,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlJobCompanyName',
|
||||
label: 'Current Company',
|
||||
description: 'Current company name returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { SIZE_OPTIONS } from 'src/constants/size-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanySize,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlJobCompanySize',
|
||||
label: 'Current Company Size',
|
||||
description: 'Current company size range returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
SIZE_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobCompanySize,
|
||||
),
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobCompanyWebsite,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.LINKS,
|
||||
name: 'pdlJobCompanyWebsite',
|
||||
label: 'Current Company Website',
|
||||
description: 'Current company website returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobHistory,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlJobHistory',
|
||||
label: 'Job History',
|
||||
description: 'Job history returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobOnetCode,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlJobOnetCode',
|
||||
label: 'O*NET Code',
|
||||
description: 'O*NET occupation code returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobRole,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlJobRole',
|
||||
label: 'Job Role',
|
||||
description: 'People Data Labs canonical job title role.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.advisory,
|
||||
value: 'ADVISORY',
|
||||
label: 'Advisory',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.analyst,
|
||||
value: 'ANALYST',
|
||||
label: 'Analyst',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.creative,
|
||||
value: 'CREATIVE',
|
||||
label: 'Creative',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.education,
|
||||
value: 'EDUCATION',
|
||||
label: 'Education',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.engineering,
|
||||
value: 'ENGINEERING',
|
||||
label: 'Engineering',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.finance,
|
||||
value: 'FINANCE',
|
||||
label: 'Finance',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.fulfillment,
|
||||
value: 'FULFILLMENT',
|
||||
label: 'Fulfillment',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.health,
|
||||
value: 'HEALTH',
|
||||
label: 'Health',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.hospitality,
|
||||
value: 'HOSPITALITY',
|
||||
label: 'Hospitality',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.humanResources,
|
||||
value: 'HUMAN_RESOURCES',
|
||||
label: 'Human Resources',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.legal,
|
||||
value: 'LEGAL',
|
||||
label: 'Legal',
|
||||
color: 'violet',
|
||||
position: 10,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.manufacturing,
|
||||
value: 'MANUFACTURING',
|
||||
label: 'Manufacturing',
|
||||
color: 'gold',
|
||||
position: 11,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.marketing,
|
||||
value: 'MARKETING',
|
||||
label: 'Marketing',
|
||||
color: 'turquoise',
|
||||
position: 12,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.operations,
|
||||
value: 'OPERATIONS',
|
||||
label: 'Operations',
|
||||
color: 'crimson',
|
||||
position: 13,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.partnerships,
|
||||
value: 'PARTNERSHIPS',
|
||||
label: 'Partnerships',
|
||||
color: 'sky',
|
||||
position: 14,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.product,
|
||||
value: 'PRODUCT',
|
||||
label: 'Product',
|
||||
color: 'amber',
|
||||
position: 15,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.professionalService,
|
||||
value: 'PROFESSIONAL_SERVICE',
|
||||
label: 'Professional Service',
|
||||
color: 'plum',
|
||||
position: 16,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.publicService,
|
||||
value: 'PUBLIC_SERVICE',
|
||||
label: 'Public Service',
|
||||
color: 'grass',
|
||||
position: 17,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.research,
|
||||
value: 'RESEARCH',
|
||||
label: 'Research',
|
||||
color: 'tomato',
|
||||
position: 18,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.sales,
|
||||
value: 'SALES',
|
||||
label: 'Sales',
|
||||
color: 'iris',
|
||||
position: 19,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.salesEngineering,
|
||||
value: 'SALES_ENGINEERING',
|
||||
label: 'Sales Engineering',
|
||||
color: 'mint',
|
||||
position: 20,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.support,
|
||||
value: 'SUPPORT',
|
||||
label: 'Support',
|
||||
color: 'ruby',
|
||||
position: 21,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.trade,
|
||||
value: 'TRADE',
|
||||
label: 'Trade',
|
||||
color: 'bronze',
|
||||
position: 22,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole.unemployed,
|
||||
value: 'UNEMPLOYED',
|
||||
label: 'Unemployed',
|
||||
color: 'jade',
|
||||
position: 23,
|
||||
},
|
||||
],
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobStartDate,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.DATE,
|
||||
name: 'pdlJobStartDate',
|
||||
label: 'Job Start Date',
|
||||
description: 'Current job start date returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobSummary,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlJobSummary',
|
||||
label: 'Job Summary',
|
||||
description: 'Current job summary returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobTitleClass,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlJobTitleClass',
|
||||
label: 'Job Class',
|
||||
description: 'People Data Labs canonical job class.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass
|
||||
.generalAndAdministrative,
|
||||
value: 'GENERAL_AND_ADMINISTRATIVE',
|
||||
label: 'General and Administrative',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass
|
||||
.researchAndDevelopment,
|
||||
value: 'RESEARCH_AND_DEVELOPMENT',
|
||||
label: 'Research and Development',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass
|
||||
.salesAndMarketing,
|
||||
value: 'SALES_AND_MARKETING',
|
||||
label: 'Sales and Marketing',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass.services,
|
||||
value: 'SERVICES',
|
||||
label: 'Services',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass.unemployed,
|
||||
value: 'UNEMPLOYED',
|
||||
label: 'Unemployed',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
],
|
||||
});
|
||||
+803
@@ -0,0 +1,803 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobTitleSubRole,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlJobTitleSubRole',
|
||||
label: 'Job Sub-Role',
|
||||
description: 'People Data Labs canonical job sub-role.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.academic,
|
||||
value: 'ACADEMIC',
|
||||
label: 'Academic',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.accountExecutive,
|
||||
value: 'ACCOUNT_EXECUTIVE',
|
||||
label: 'Account Executive',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.accountManagement,
|
||||
value: 'ACCOUNT_MANAGEMENT',
|
||||
label: 'Account Management',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.accounting,
|
||||
value: 'ACCOUNTING',
|
||||
label: 'Accounting',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.accountingServices,
|
||||
value: 'ACCOUNTING_SERVICES',
|
||||
label: 'Accounting Services',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.administrative,
|
||||
value: 'ADMINISTRATIVE',
|
||||
label: 'Administrative',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.advisor,
|
||||
value: 'ADVISOR',
|
||||
label: 'Advisor',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.agriculture,
|
||||
value: 'AGRICULTURE',
|
||||
label: 'Agriculture',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.aides,
|
||||
value: 'AIDES',
|
||||
label: 'Aides',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.architecture,
|
||||
value: 'ARCHITECTURE',
|
||||
label: 'Architecture',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.artist,
|
||||
value: 'ARTIST',
|
||||
label: 'Artist',
|
||||
color: 'violet',
|
||||
position: 10,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.boardMember,
|
||||
value: 'BOARD_MEMBER',
|
||||
label: 'Board Member',
|
||||
color: 'gold',
|
||||
position: 11,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.bookkeeping,
|
||||
value: 'BOOKKEEPING',
|
||||
label: 'Bookkeeping',
|
||||
color: 'turquoise',
|
||||
position: 12,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.brand,
|
||||
value: 'BRAND',
|
||||
label: 'Brand',
|
||||
color: 'crimson',
|
||||
position: 13,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.buildingAndGrounds,
|
||||
value: 'BUILDING_AND_GROUNDS',
|
||||
label: 'Building and Grounds',
|
||||
color: 'sky',
|
||||
position: 14,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.businessAnalyst,
|
||||
value: 'BUSINESS_ANALYST',
|
||||
label: 'Business Analyst',
|
||||
color: 'amber',
|
||||
position: 15,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.businessDevelopment,
|
||||
value: 'BUSINESS_DEVELOPMENT',
|
||||
label: 'Business Development',
|
||||
color: 'plum',
|
||||
position: 16,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.chemical,
|
||||
value: 'CHEMICAL',
|
||||
label: 'Chemical',
|
||||
color: 'grass',
|
||||
position: 17,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.compliance,
|
||||
value: 'COMPLIANCE',
|
||||
label: 'Compliance',
|
||||
color: 'tomato',
|
||||
position: 18,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.construction,
|
||||
value: 'CONSTRUCTION',
|
||||
label: 'Construction',
|
||||
color: 'iris',
|
||||
position: 19,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.consulting,
|
||||
value: 'CONSULTING',
|
||||
label: 'Consulting',
|
||||
color: 'mint',
|
||||
position: 20,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.content,
|
||||
value: 'CONTENT',
|
||||
label: 'Content',
|
||||
color: 'ruby',
|
||||
position: 21,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.corporateDevelopment,
|
||||
value: 'CORPORATE_DEVELOPMENT',
|
||||
label: 'Corporate Development',
|
||||
color: 'bronze',
|
||||
position: 22,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.curation,
|
||||
value: 'CURATION',
|
||||
label: 'Curation',
|
||||
color: 'jade',
|
||||
position: 23,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.customerSuccess,
|
||||
value: 'CUSTOMER_SUCCESS',
|
||||
label: 'Customer Success',
|
||||
color: 'gray',
|
||||
position: 24,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.customerSupport,
|
||||
value: 'CUSTOMER_SUPPORT',
|
||||
label: 'Customer Support',
|
||||
color: 'blue',
|
||||
position: 25,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.dataAnalyst,
|
||||
value: 'DATA_ANALYST',
|
||||
label: 'Data Analyst',
|
||||
color: 'red',
|
||||
position: 26,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.dataEngineering,
|
||||
value: 'DATA_ENGINEERING',
|
||||
label: 'Data Engineering',
|
||||
color: 'green',
|
||||
position: 27,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.dataScience,
|
||||
value: 'DATA_SCIENCE',
|
||||
label: 'Data Science',
|
||||
color: 'orange',
|
||||
position: 28,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.dental,
|
||||
value: 'DENTAL',
|
||||
label: 'Dental',
|
||||
color: 'purple',
|
||||
position: 29,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.devops,
|
||||
value: 'DEVOPS',
|
||||
label: 'DevOps',
|
||||
color: 'yellow',
|
||||
position: 30,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.doctor,
|
||||
value: 'DOCTOR',
|
||||
label: 'Doctor',
|
||||
color: 'pink',
|
||||
position: 31,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.electric,
|
||||
value: 'ELECTRIC',
|
||||
label: 'Electric',
|
||||
color: 'cyan',
|
||||
position: 32,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.electrical,
|
||||
value: 'ELECTRICAL',
|
||||
label: 'Electrical',
|
||||
color: 'brown',
|
||||
position: 33,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.emergencyServices,
|
||||
value: 'EMERGENCY_SERVICES',
|
||||
label: 'Emergency Services',
|
||||
color: 'lime',
|
||||
position: 34,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.entertainment,
|
||||
value: 'ENTERTAINMENT',
|
||||
label: 'Entertainment',
|
||||
color: 'violet',
|
||||
position: 35,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.executive,
|
||||
value: 'EXECUTIVE',
|
||||
label: 'Executive',
|
||||
color: 'gold',
|
||||
position: 36,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.fashion,
|
||||
value: 'FASHION',
|
||||
label: 'Fashion',
|
||||
color: 'turquoise',
|
||||
position: 37,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.financial,
|
||||
value: 'FINANCIAL',
|
||||
label: 'Financial',
|
||||
color: 'crimson',
|
||||
position: 38,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.fitness,
|
||||
value: 'FITNESS',
|
||||
label: 'Fitness',
|
||||
color: 'sky',
|
||||
position: 39,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.fraud,
|
||||
value: 'FRAUD',
|
||||
label: 'Fraud',
|
||||
color: 'amber',
|
||||
position: 40,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.graphicDesign,
|
||||
value: 'GRAPHIC_DESIGN',
|
||||
label: 'Graphic Design',
|
||||
color: 'plum',
|
||||
position: 41,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.growth,
|
||||
value: 'GROWTH',
|
||||
label: 'Growth',
|
||||
color: 'grass',
|
||||
position: 42,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.hairStylist,
|
||||
value: 'HAIR_STYLIST',
|
||||
label: 'Hair Stylist',
|
||||
color: 'tomato',
|
||||
position: 43,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.hardware,
|
||||
value: 'HARDWARE',
|
||||
label: 'Hardware',
|
||||
color: 'iris',
|
||||
position: 44,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.healthAndSafety,
|
||||
value: 'HEALTH_AND_SAFETY',
|
||||
label: 'Health and Safety',
|
||||
color: 'mint',
|
||||
position: 45,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.humanResources,
|
||||
value: 'HUMAN_RESOURCES',
|
||||
label: 'Human Resources',
|
||||
color: 'ruby',
|
||||
position: 46,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.implementation,
|
||||
value: 'IMPLEMENTATION',
|
||||
label: 'Implementation',
|
||||
color: 'bronze',
|
||||
position: 47,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.industrial,
|
||||
value: 'INDUSTRIAL',
|
||||
label: 'Industrial',
|
||||
color: 'jade',
|
||||
position: 48,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.informationTechnology,
|
||||
value: 'INFORMATION_TECHNOLOGY',
|
||||
label: 'Information Technology',
|
||||
color: 'gray',
|
||||
position: 49,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.insurance,
|
||||
value: 'INSURANCE',
|
||||
label: 'Insurance',
|
||||
color: 'blue',
|
||||
position: 50,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.investmentBanking,
|
||||
value: 'INVESTMENT_BANKING',
|
||||
label: 'Investment Banking',
|
||||
color: 'red',
|
||||
position: 51,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.investor,
|
||||
value: 'INVESTOR',
|
||||
label: 'Investor',
|
||||
color: 'green',
|
||||
position: 52,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.investorRelations,
|
||||
value: 'INVESTOR_RELATIONS',
|
||||
label: 'Investor Relations',
|
||||
color: 'orange',
|
||||
position: 53,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.journalism,
|
||||
value: 'JOURNALISM',
|
||||
label: 'Journalism',
|
||||
color: 'purple',
|
||||
position: 54,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.judicial,
|
||||
value: 'JUDICIAL',
|
||||
label: 'Judicial',
|
||||
color: 'yellow',
|
||||
position: 55,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.legal,
|
||||
value: 'LEGAL',
|
||||
label: 'Legal',
|
||||
color: 'pink',
|
||||
position: 56,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.legalServices,
|
||||
value: 'LEGAL_SERVICES',
|
||||
label: 'Legal Services',
|
||||
color: 'cyan',
|
||||
position: 57,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.logistics,
|
||||
value: 'LOGISTICS',
|
||||
label: 'Logistics',
|
||||
color: 'brown',
|
||||
position: 58,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.machinist,
|
||||
value: 'MACHINIST',
|
||||
label: 'Machinist',
|
||||
color: 'lime',
|
||||
position: 59,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.marketingDesign,
|
||||
value: 'MARKETING_DESIGN',
|
||||
label: 'Marketing Design',
|
||||
color: 'violet',
|
||||
position: 60,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.marketingServices,
|
||||
value: 'MARKETING_SERVICES',
|
||||
label: 'Marketing Services',
|
||||
color: 'gold',
|
||||
position: 61,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.mechanic,
|
||||
value: 'MECHANIC',
|
||||
label: 'Mechanic',
|
||||
color: 'turquoise',
|
||||
position: 62,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.mechanical,
|
||||
value: 'MECHANICAL',
|
||||
label: 'Mechanical',
|
||||
color: 'crimson',
|
||||
position: 63,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.military,
|
||||
value: 'MILITARY',
|
||||
label: 'Military',
|
||||
color: 'sky',
|
||||
position: 64,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.network,
|
||||
value: 'NETWORK',
|
||||
label: 'Network',
|
||||
color: 'amber',
|
||||
position: 65,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.nursing,
|
||||
value: 'NURSING',
|
||||
label: 'Nursing',
|
||||
color: 'plum',
|
||||
position: 66,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.partnerships,
|
||||
value: 'PARTNERSHIPS',
|
||||
label: 'Partnerships',
|
||||
color: 'grass',
|
||||
position: 67,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.pharmacy,
|
||||
value: 'PHARMACY',
|
||||
label: 'Pharmacy',
|
||||
color: 'tomato',
|
||||
position: 68,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.planningAndAnalysis,
|
||||
value: 'PLANNING_AND_ANALYSIS',
|
||||
label: 'Planning and Analysis',
|
||||
color: 'iris',
|
||||
position: 69,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.plumbing,
|
||||
value: 'PLUMBING',
|
||||
label: 'Plumbing',
|
||||
color: 'mint',
|
||||
position: 70,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.political,
|
||||
value: 'POLITICAL',
|
||||
label: 'Political',
|
||||
color: 'ruby',
|
||||
position: 71,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.primaryAndSecondary,
|
||||
value: 'PRIMARY_AND_SECONDARY',
|
||||
label: 'Primary and Secondary',
|
||||
color: 'bronze',
|
||||
position: 72,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.procurement,
|
||||
value: 'PROCUREMENT',
|
||||
label: 'Procurement',
|
||||
color: 'jade',
|
||||
position: 73,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.productDesign,
|
||||
value: 'PRODUCT_DESIGN',
|
||||
label: 'Product Design',
|
||||
color: 'gray',
|
||||
position: 74,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.productManagement,
|
||||
value: 'PRODUCT_MANAGEMENT',
|
||||
label: 'Product Management',
|
||||
color: 'blue',
|
||||
position: 75,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.professor,
|
||||
value: 'PROFESSOR',
|
||||
label: 'Professor',
|
||||
color: 'red',
|
||||
position: 76,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.projectManagement,
|
||||
value: 'PROJECT_MANAGEMENT',
|
||||
label: 'Project Management',
|
||||
color: 'green',
|
||||
position: 77,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.protectiveService,
|
||||
value: 'PROTECTIVE_SERVICE',
|
||||
label: 'Protective Service',
|
||||
color: 'orange',
|
||||
position: 78,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.qaEngineering,
|
||||
value: 'QA_ENGINEERING',
|
||||
label: 'QA Engineering',
|
||||
color: 'purple',
|
||||
position: 79,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.qualityAssurance,
|
||||
value: 'QUALITY_ASSURANCE',
|
||||
label: 'Quality Assurance',
|
||||
color: 'yellow',
|
||||
position: 80,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.realtor,
|
||||
value: 'REALTOR',
|
||||
label: 'Realtor',
|
||||
color: 'pink',
|
||||
position: 81,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.recruiting,
|
||||
value: 'RECRUITING',
|
||||
label: 'Recruiting',
|
||||
color: 'cyan',
|
||||
position: 82,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.restaurants,
|
||||
value: 'RESTAURANTS',
|
||||
label: 'Restaurants',
|
||||
color: 'brown',
|
||||
position: 83,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.retail,
|
||||
value: 'RETAIL',
|
||||
label: 'Retail',
|
||||
color: 'lime',
|
||||
position: 84,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.revenueOperations,
|
||||
value: 'REVENUE_OPERATIONS',
|
||||
label: 'Revenue Operations',
|
||||
color: 'violet',
|
||||
position: 85,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.risk,
|
||||
value: 'RISK',
|
||||
label: 'Risk',
|
||||
color: 'gold',
|
||||
position: 86,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.salesDevelopment,
|
||||
value: 'SALES_DEVELOPMENT',
|
||||
label: 'Sales Development',
|
||||
color: 'turquoise',
|
||||
position: 87,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.scientific,
|
||||
value: 'SCIENTIFIC',
|
||||
label: 'Scientific',
|
||||
color: 'crimson',
|
||||
position: 88,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.security,
|
||||
value: 'SECURITY',
|
||||
label: 'Security',
|
||||
color: 'sky',
|
||||
position: 89,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.socialService,
|
||||
value: 'SOCIAL_SERVICE',
|
||||
label: 'Social Service',
|
||||
color: 'amber',
|
||||
position: 90,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.software,
|
||||
value: 'SOFTWARE',
|
||||
label: 'Software',
|
||||
color: 'plum',
|
||||
position: 91,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.solutionsEngineer,
|
||||
value: 'SOLUTIONS_ENGINEER',
|
||||
label: 'Solutions Engineer',
|
||||
color: 'grass',
|
||||
position: 92,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.strategy,
|
||||
value: 'STRATEGY',
|
||||
label: 'Strategy',
|
||||
color: 'tomato',
|
||||
position: 93,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.student,
|
||||
value: 'STUDENT',
|
||||
label: 'Student',
|
||||
color: 'iris',
|
||||
position: 94,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.talentAnalytics,
|
||||
value: 'TALENT_ANALYTICS',
|
||||
label: 'Talent Analytics',
|
||||
color: 'mint',
|
||||
position: 95,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.therapy,
|
||||
value: 'THERAPY',
|
||||
label: 'Therapy',
|
||||
color: 'ruby',
|
||||
position: 96,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole
|
||||
.tourAndTravel,
|
||||
value: 'TOUR_AND_TRAVEL',
|
||||
label: 'Tour and Travel',
|
||||
color: 'bronze',
|
||||
position: 97,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.training,
|
||||
value: 'TRAINING',
|
||||
label: 'Training',
|
||||
color: 'jade',
|
||||
position: 98,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.translation,
|
||||
value: 'TRANSLATION',
|
||||
label: 'Translation',
|
||||
color: 'gray',
|
||||
position: 99,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.transport,
|
||||
value: 'TRANSPORT',
|
||||
label: 'Transport',
|
||||
color: 'blue',
|
||||
position: 100,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.unemployed,
|
||||
value: 'UNEMPLOYED',
|
||||
label: 'Unemployed',
|
||||
color: 'red',
|
||||
position: 101,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.veterinarian,
|
||||
value: 'VETERINARIAN',
|
||||
label: 'Veterinarian',
|
||||
color: 'green',
|
||||
position: 102,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.warehouse,
|
||||
value: 'WAREHOUSE',
|
||||
label: 'Warehouse',
|
||||
color: 'orange',
|
||||
position: 103,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.web,
|
||||
value: 'WEB',
|
||||
label: 'Web',
|
||||
color: 'purple',
|
||||
position: 104,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole.wellness,
|
||||
value: 'WELLNESS',
|
||||
label: 'Wellness',
|
||||
color: 'yellow',
|
||||
position: 105,
|
||||
},
|
||||
],
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLanguages,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlLanguages',
|
||||
label: 'Languages',
|
||||
description: 'Languages returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLastEnrichedAt,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.DATE_TIME,
|
||||
name: 'pdlLastEnrichedAt',
|
||||
label: 'Last Enriched At',
|
||||
description: 'Timestamp of the latest People Data Labs enrichment.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLikelihood,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlLikelihood',
|
||||
label: 'Match Likelihood',
|
||||
description: 'People Data Labs match confidence score (1-10).',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLinkedinConnections,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.NUMBER,
|
||||
name: 'pdlLinkedinConnections',
|
||||
label: 'LinkedIn Connections',
|
||||
description: 'LinkedIn connection count returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier:
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLinkedinUsername,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.TEXT,
|
||||
name: 'pdlLinkedinUsername',
|
||||
label: 'LinkedIn Username',
|
||||
description: 'LinkedIn username returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { METRO_OPTIONS } from 'src/constants/metro-options';
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
import { buildSelectOptions } from 'src/utils/build-select-options';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLocationMetro,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlLocationMetro',
|
||||
label: 'Metro Area',
|
||||
description: 'People Data Labs canonical metro area.',
|
||||
isNullable: true,
|
||||
options: buildSelectOptions(
|
||||
METRO_OPTIONS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personLocationMetro,
|
||||
),
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLocation,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.ADDRESS,
|
||||
name: 'pdlLocation',
|
||||
label: 'Location',
|
||||
description: 'Location returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlNameAliases,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.ARRAY,
|
||||
name: 'pdlNameAliases',
|
||||
label: 'Name Aliases',
|
||||
description: 'Name aliases returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlProfiles,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlProfiles',
|
||||
label: 'Social Profiles',
|
||||
description: 'All social profiles returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
});
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlRawPayload,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.RAW_JSON,
|
||||
name: 'pdlRawPayload',
|
||||
label: 'PDL Raw Payload',
|
||||
description: 'Full People Data Labs person enrichment response.',
|
||||
isNullable: true,
|
||||
});
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlSeniority,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.MULTI_SELECT,
|
||||
name: 'pdlSeniority',
|
||||
label: 'Seniority',
|
||||
description: 'People Data Labs canonical job title levels.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.cxo,
|
||||
value: 'CXO',
|
||||
label: 'CXO',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.owner,
|
||||
value: 'OWNER',
|
||||
label: 'Owner',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.vp,
|
||||
value: 'VP',
|
||||
label: 'VP',
|
||||
color: 'green',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.director,
|
||||
value: 'DIRECTOR',
|
||||
label: 'Director',
|
||||
color: 'orange',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.partner,
|
||||
value: 'PARTNER',
|
||||
label: 'Partner',
|
||||
color: 'purple',
|
||||
position: 4,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.senior,
|
||||
value: 'SENIOR',
|
||||
label: 'Senior',
|
||||
color: 'yellow',
|
||||
position: 5,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.manager,
|
||||
value: 'MANAGER',
|
||||
label: 'Manager',
|
||||
color: 'pink',
|
||||
position: 6,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.entry,
|
||||
value: 'ENTRY',
|
||||
label: 'Entry',
|
||||
color: 'cyan',
|
||||
position: 7,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.training,
|
||||
value: 'TRAINING',
|
||||
label: 'Training',
|
||||
color: 'brown',
|
||||
position: 8,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority.unpaid,
|
||||
value: 'UNPAID',
|
||||
label: 'Unpaid',
|
||||
color: 'lime',
|
||||
position: 9,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,37 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk/define';
|
||||
|
||||
import {
|
||||
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
|
||||
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'src/constants/universal-identifiers';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlSex,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
type: FieldType.SELECT,
|
||||
name: 'pdlSex',
|
||||
label: 'Sex',
|
||||
description: 'Sex returned by People Data Labs.',
|
||||
isNullable: true,
|
||||
options: [
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.sex.male,
|
||||
value: 'MALE',
|
||||
label: 'Male',
|
||||
color: 'blue',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.sex.female,
|
||||
value: 'FEMALE',
|
||||
label: 'Female',
|
||||
color: 'red',
|
||||
position: 1,
|
||||
},
|
||||
],
|
||||
});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user