Spaces:
Build error
Build error
File size: 1,283 Bytes
d9494a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import { FIELD_METADATA_TYPES_NOT_SUPPORTED_IN_GROUP_BY } from '@/constants';
import { FieldMetadataType, RelationType } from '@/types';
import { isFieldMetadataDateKind } from '@/utils/fieldMetadata/isFieldMetadataDateKind';
import { shouldExcludeFieldFromAgentToolSchema } from '@/utils/fieldMetadata/shouldExcludeFieldFromAgentToolSchema';
const ALWAYS_GROUPABLE_SYSTEM_DATE_FIELD_NAMES = new Set([
'createdAt',
'updatedAt',
]);
const RELATION_FIELD_METADATA_TYPES = new Set<FieldMetadataType>([
FieldMetadataType.RELATION,
FieldMetadataType.MORPH_RELATION,
]);
export const isFieldMetadataSupportedInGroupBy = ({
type,
name,
isSystem,
relationType,
}: {
type: FieldMetadataType;
name: string;
isSystem: boolean;
relationType?: RelationType | null;
}): boolean => {
const isAlwaysGroupableSystemDateField =
ALWAYS_GROUPABLE_SYSTEM_DATE_FIELD_NAMES.has(name) &&
isFieldMetadataDateKind(type);
if (
!isAlwaysGroupableSystemDateField &&
shouldExcludeFieldFromAgentToolSchema({ fieldName: name, isSystem })
) {
return false;
}
if (
RELATION_FIELD_METADATA_TYPES.has(type) &&
relationType === RelationType.ONE_TO_MANY
) {
return false;
}
return !FIELD_METADATA_TYPES_NOT_SUPPORTED_IN_GROUP_BY.has(type);
};
|