import { FieldDefinition } from '@/ui/data/field/types/FieldDefinition'; import { FieldBooleanMetadata, FieldDateMetadata, FieldMetadata, FieldNumberMetadata, FieldRelationMetadata, FieldTextMetadata, FieldURLMetadata, } from '@/ui/data/field/types/FieldMetadata'; import { IconBrandX, IconCalendar, IconLink, IconMap, IconPencil, IconTarget, IconUserCircle, IconUsers, } from '@/ui/display/icon'; import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect'; import { User } from '~/generated/graphql'; export const companyShowFieldDefinition: FieldDefinition[] = [ { key: 'domainName', name: 'Domain name', Icon: IconLink, type: 'url', metadata: { fieldName: 'domainName', placeHolder: 'URL', }, buttonIcon: IconPencil, } satisfies FieldDefinition, { key: 'accountOwner', name: 'Account owner', Icon: IconUserCircle, type: 'relation', metadata: { fieldName: 'accountOwner', relationType: Entity.User, }, entityChipDisplayMapper: (dataObject: User) => { return { name: dataObject?.displayName, pictureUrl: dataObject?.avatarUrl ?? undefined, avatarType: 'rounded', }; }, } satisfies FieldDefinition, { key: 'employees', name: 'Employees', Icon: IconUsers, type: 'number', metadata: { fieldName: 'employees', placeHolder: 'Employees', }, } satisfies FieldDefinition, { key: 'address', name: 'Address', Icon: IconMap, type: 'text', metadata: { fieldName: 'address', placeHolder: 'Address', }, } satisfies FieldDefinition, { key: 'idealCustomerProfile', name: 'ICP', Icon: IconTarget, type: 'boolean', metadata: { fieldName: 'idealCustomerProfile', }, } satisfies FieldDefinition, { key: 'xUrl', name: 'Twitter', Icon: IconBrandX, type: 'url', metadata: { fieldName: 'xUrl', placeHolder: 'X', }, buttonIcon: IconPencil, } satisfies FieldDefinition, { key: 'createdAt', name: 'Created at', Icon: IconCalendar, type: 'date', metadata: { fieldName: 'createdAt', }, } satisfies FieldDefinition, ];