Files
twenty/packages/twenty-server/src/engine/twenty-orm/utils/get-subfields-for-aggregate-operation.util.ts
eliasylonen b63ae14318 RICH_TEXT_V2 backend (#9848)
- Add RICH_TEXT_V2 composite type to backend.
- Add `bodyV2` field to tasks and notes.
- Minimum required frontend changes to avoid errors when creating a note

[Testing
instructions](https://github.com/twentyhq/twenty/pull/9690#issuecomment-2602378218)

---------

Co-authored-by: ad-elias <elias@autodiligence.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2025-01-28 14:05:06 +01:00

46 lines
1.4 KiB
TypeScript

import { FieldMetadataType } from 'twenty-shared';
import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
export const getSubfieldsForAggregateOperation = (
fieldType: FieldMetadataType,
): string[] | undefined => {
if (!isCompositeFieldMetadataType(fieldType)) {
return undefined;
} else {
switch (fieldType) {
case FieldMetadataType.CURRENCY:
return ['amountMicros', 'currencyCode'];
case FieldMetadataType.FULL_NAME:
return ['firstName', 'lastName'];
case FieldMetadataType.ADDRESS:
return [
'addressStreet1',
'addressStreet2',
'addressCity',
'addressPostcode',
'addressState',
'addressCountry',
'addressLat',
'addressLng',
];
case FieldMetadataType.LINKS:
return ['primaryLinkUrl'];
case FieldMetadataType.ACTOR:
return ['workspaceMemberId', 'source'];
case FieldMetadataType.EMAILS:
return ['primaryEmail'];
case FieldMetadataType.PHONES:
return [
'primaryPhoneNumber',
'primaryPhoneCountryCode',
'primaryPhoneCallingCode',
];
case FieldMetadataType.RICH_TEXT_V2:
return ['blocknote', 'markdown'];
default:
throw new Error(`Unsupported composite field type: ${fieldType}`);
}
}
};