feat: migration can be applied on a specific schema & some enhancements (#2998)
* fix: remove old metadata seed files * feat: wip standard to core relation * fix: lint * fix: merge * fix: remove debug files * feat: add feature flag for core object metadata * fix: remove debug * feat: always disable the standard core relation * fix: missing feature flag * fix: remove debug * fix: feature flag doesn't seems to disable relation * fix: delete .vscode folder, change this in another PR * Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts Co-authored-by: Weiko <corentin@twenty.com> * Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts Co-authored-by: Weiko <corentin@twenty.com> * Update packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync.metadata.service.ts Co-authored-by: Weiko <corentin@twenty.com> * fix: remove optional fields from metadata entities * fix: renamed variable * fix: put back CursorScalarType * fix: delete test command * fix: remove unused workspace standard migration command * fix: drop core object metadata declaration * fix: rename variable * fix: drop creation of core datasource * fix: remove feature flag * fix: drop support of standard to core relations * feat: add user email field on workspace-member standard object * fix: update seed accordingly * fix: missing remove command file * fix: datasource label should remain nullable * fix: better asserts * Remove unused code * Remove unused code --------- Co-authored-by: Weiko <corentin@twenty.com> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -0,0 +1,3 @@
|
||||
export interface GateDecoratorParams {
|
||||
featureFlag: string;
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
import { PartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
|
||||
import { PartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity';
|
||||
import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
|
||||
export type MappedFieldMetadata = Record<string, PartialFieldMetadata>;
|
||||
|
||||
export interface MappedObjectMetadata
|
||||
extends Omit<PartialObjectMetadata, 'fields'> {
|
||||
fields: MappedFieldMetadata;
|
||||
}
|
||||
|
||||
export type MappedFieldMetadataEntity = Record<string, FieldMetadataEntity>;
|
||||
|
||||
export interface MappedObjectMetadataEntity
|
||||
extends Omit<ObjectMetadataEntity, 'fields'> {
|
||||
fields: MappedFieldMetadataEntity;
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
import { ReflectFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface';
|
||||
|
||||
export type PartialFieldMetadata = ReflectFieldMetadata[string] & {
|
||||
workspaceId: string;
|
||||
objectMetadataId?: string;
|
||||
};
|
||||
@ -0,0 +1,8 @@
|
||||
import { PartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
|
||||
import { ReflectObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface';
|
||||
|
||||
export type PartialObjectMetadata = ReflectObjectMetadata & {
|
||||
workspaceId: string;
|
||||
dataSourceId: string;
|
||||
fields: PartialFieldMetadata[];
|
||||
};
|
||||
@ -0,0 +1,32 @@
|
||||
import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface';
|
||||
import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface';
|
||||
|
||||
import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
|
||||
export interface FieldMetadataDecoratorParams<
|
||||
T extends FieldMetadataType | 'default',
|
||||
> {
|
||||
type: T;
|
||||
label: string;
|
||||
description?: string;
|
||||
icon?: string;
|
||||
defaultValue?: FieldMetadataDefaultValue<T>;
|
||||
joinColumn?: string;
|
||||
}
|
||||
|
||||
export interface ReflectFieldMetadata {
|
||||
[key: string]: Omit<
|
||||
FieldMetadataDecoratorParams<'default'>,
|
||||
'defaultValue' | 'type'
|
||||
> & {
|
||||
name: string;
|
||||
type: FieldMetadataType;
|
||||
targetColumnMap: string;
|
||||
isNullable: boolean;
|
||||
isSystem: boolean;
|
||||
isCustom: boolean;
|
||||
description?: string;
|
||||
defaultValue: string | null;
|
||||
gate?: GateDecoratorParams;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface';
|
||||
|
||||
export interface ObjectMetadataDecoratorParams {
|
||||
namePlural: string;
|
||||
labelSingular: string;
|
||||
labelPlural: string;
|
||||
description?: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
export interface ReflectObjectMetadata extends ObjectMetadataDecoratorParams {
|
||||
nameSingular: string;
|
||||
targetTableName: string;
|
||||
isSystem: boolean;
|
||||
isCustom: boolean;
|
||||
gate?: GateDecoratorParams;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface';
|
||||
|
||||
import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity';
|
||||
|
||||
export interface RelationMetadataDecoratorParams {
|
||||
type: RelationMetadataType;
|
||||
objectName: string;
|
||||
inverseSideFieldName?: string;
|
||||
}
|
||||
|
||||
export interface ReflectRelationMetadata {
|
||||
type: RelationMetadataType;
|
||||
fromObjectNameSingular: string;
|
||||
toObjectNameSingular: string;
|
||||
fromFieldMetadataName: string;
|
||||
toFieldMetadataName: string;
|
||||
gate?: GateDecoratorParams;
|
||||
}
|
||||
Reference in New Issue
Block a user