7ce96049b8
Done : - add isUnique prop availability on gql update/create fieldMetadata resolvers - add unique index creation logic at update & creation - add unique index deletion logic at update - update unique index if field name updated - edge cases : can't have default value and unique fields / standard default value excluded from index (where clause) / can't have composite unique fields / can't create unique fields on MORPH closes https://github.com/twentyhq/core-team-issues/issues/1222
22 lines
701 B
TypeScript
22 lines
701 B
TypeScript
import { isDeepStrictEqual } from 'util';
|
|
|
|
import { type FieldMetadataType } from 'twenty-shared/types';
|
|
|
|
import { type FieldMetadataDefaultValue } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-default-value.interface';
|
|
|
|
import { generateDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/generate-default-value';
|
|
|
|
export const isValidUniqueFieldDefaultValueCombination = ({
|
|
defaultValue,
|
|
isUnique,
|
|
type,
|
|
}: {
|
|
defaultValue: FieldMetadataDefaultValue;
|
|
isUnique: boolean;
|
|
type: FieldMetadataType;
|
|
}) => {
|
|
const defaultDefaultValue = generateDefaultValue(type);
|
|
|
|
return !isUnique || isDeepStrictEqual(defaultValue, defaultDefaultValue);
|
|
};
|