feat: expose foreign key (#2505)

* fix: typo

* feat: expose foreign key

* fix: foreign key exposition

* fix: be able to filter by foreign key

* feat: add `isSystem` on field metadata

* feat: update all seeds

* fix: seed issues

* fix: sync metadata generated files

* fix: squash metadata migrations

* Fix conflicts

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Jérémy M
2023-11-16 12:30:40 +01:00
committed by GitHub
parent e5caa7a5df
commit e026b2b6e9
45 changed files with 786 additions and 327 deletions

View File

@ -2,45 +2,67 @@ import {
IconCalendarEvent,
IconCheck,
IconCoins,
IconKey,
IconLink,
IconMail,
IconNumbers,
IconPhone,
IconPlug,
IconTextSize,
} from '@/ui/display/icon';
import { IconComponent } from '@/ui/display/icon/types/IconComponent';
import { Currency } from '~/generated-metadata/graphql';
import { MetadataFieldDataType } from '../types/ObjectFieldDataType';
import { Currency, FieldMetadataType } from '~/generated-metadata/graphql';
const defaultDateValue = new Date();
defaultDateValue.setFullYear(defaultDateValue.getFullYear() + 2);
export const dataTypes: Record<
MetadataFieldDataType,
FieldMetadataType,
{ label: string; Icon: IconComponent; defaultValue?: unknown }
> = {
TEXT: {
[FieldMetadataType.Uuid]: {
label: 'Unique ID',
Icon: IconKey,
defaultValue: '00000000-0000-0000-0000-000000000000',
},
[FieldMetadataType.Text]: {
label: 'Text',
Icon: IconTextSize,
defaultValue:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum magna enim, dapibus non enim in, lacinia faucibus nunc. Sed interdum ante sed felis facilisis, eget ultricies neque molestie. Mauris auctor, justo eu volutpat cursus, libero erat tempus nulla, non sodales lorem lacus a est.',
},
NUMBER: { label: 'Number', Icon: IconNumbers, defaultValue: 2000 },
URL: {
[FieldMetadataType.Number]: {
label: 'Number',
Icon: IconNumbers,
defaultValue: 2000,
},
[FieldMetadataType.Url]: {
label: 'Link',
Icon: IconLink,
defaultValue: { link: 'www.twenty.com', text: '' },
},
BOOLEAN: { label: 'True/False', Icon: IconCheck, defaultValue: true },
DATE: {
[FieldMetadataType.Boolean]: {
label: 'True/False',
Icon: IconCheck,
defaultValue: true,
},
[FieldMetadataType.Date]: {
label: 'Date',
Icon: IconCalendarEvent,
defaultValue: defaultDateValue.toISOString(),
},
MONEY: {
[FieldMetadataType.Money]: {
label: 'Currency',
Icon: IconCoins,
defaultValue: { amount: 2000, currency: Currency.Usd },
},
RELATION: { label: 'Relation', Icon: IconPlug },
[FieldMetadataType.Relation]: { label: 'Relation', Icon: IconPlug },
[FieldMetadataType.Email]: { label: 'Email', Icon: IconMail },
[FieldMetadataType.Phone]: { label: 'Phone', Icon: IconPhone },
[FieldMetadataType.Probability]: {
label: 'Probability',
Icon: IconNumbers,
defaultValue: 50,
},
[FieldMetadataType.Enum]: { label: 'Enum', Icon: IconPlug },
};