abde3c04ac
As title - adds decorators in twenty-sdk - update twenty-cli load-manifest to it gets @FieldMetadata infos + testing - update twenty-server so it CRUD fields properly, using universalIdentifier - Fix UI so we can update managed objects records - move FieldMetadata items from twenty-server to twenty-shared
105 lines
1.9 KiB
TypeScript
105 lines
1.9 KiB
TypeScript
import { type ObjectType } from 'typeorm';
|
|
import { type RelationOnDeleteAction } from 'twenty-shared/types';
|
|
|
|
import { type RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
|
import { type Gate } from 'src/engine/twenty-orm/interfaces/gate.interface';
|
|
|
|
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
|
|
|
export interface WorkspaceRelationMetadataArgs {
|
|
/**
|
|
* Standard id.
|
|
*/
|
|
readonly standardId: string;
|
|
|
|
/**
|
|
* Class to which relation is applied.
|
|
*/
|
|
|
|
readonly target: Function;
|
|
|
|
/**
|
|
* Relation name.
|
|
*/
|
|
readonly name: string;
|
|
|
|
/**
|
|
* Relation label.
|
|
*/
|
|
readonly label: string | ((objectMetadata: ObjectMetadataEntity) => string);
|
|
|
|
/**
|
|
* Relation type.
|
|
*/
|
|
readonly type: RelationType;
|
|
|
|
/**
|
|
* Relation description.
|
|
*/
|
|
readonly description?:
|
|
| string
|
|
| ((objectMetadata: ObjectMetadataEntity) => string);
|
|
|
|
/**
|
|
* Relation icon.
|
|
*/
|
|
readonly icon?: string;
|
|
|
|
/**
|
|
* Relation inverse side target.
|
|
*/
|
|
readonly inverseSideTarget: () => ObjectType<object>;
|
|
|
|
/**
|
|
* Relation inverse side field key.
|
|
*/
|
|
readonly inverseSideFieldKey?: string;
|
|
|
|
/**
|
|
* Relation on delete action.
|
|
*/
|
|
readonly onDelete?: RelationOnDeleteAction;
|
|
|
|
/**
|
|
* Is primary field.
|
|
*/
|
|
readonly isPrimary: boolean;
|
|
|
|
/**
|
|
* Is system field.
|
|
*/
|
|
readonly isSystem: boolean;
|
|
|
|
/**
|
|
* Is UI read-only field.
|
|
*/
|
|
readonly isUIReadOnly: boolean;
|
|
|
|
/**
|
|
* Is nullable field.
|
|
*/
|
|
readonly isNullable: boolean;
|
|
|
|
/**
|
|
* Field gate.
|
|
*/
|
|
readonly gate?: Gate;
|
|
|
|
/**
|
|
* Is active field.
|
|
*/
|
|
readonly isActive?: boolean;
|
|
|
|
readonly isLabelSyncedWithName: boolean;
|
|
|
|
/**
|
|
* Is morph relation.
|
|
*/
|
|
readonly isMorphRelation: boolean;
|
|
|
|
/**
|
|
* Morph id.
|
|
*/
|
|
readonly morphId?: string;
|
|
}
|