This PR is updating all object metadata entities with the new decorators, and deleting the old ones. This way we can use the new TwentyORM with all the standard objects. --------- Co-authored-by: Weiko <corentin@twenty.com>
97 lines
1.7 KiB
TypeScript
97 lines
1.7 KiB
TypeScript
import { ObjectType } from 'typeorm';
|
|
|
|
import { Gate } from 'src/engine/twenty-orm/interfaces/gate.interface';
|
|
|
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
|
import {
|
|
RelationMetadataType,
|
|
RelationOnDeleteAction,
|
|
} from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity';
|
|
|
|
export type WorkspaceDynamicRelationMetadataArgsFactory = (
|
|
oppositeObjectMetadata: ObjectMetadataEntity,
|
|
) => {
|
|
/**
|
|
* Standard id.
|
|
*/
|
|
readonly standardId: string;
|
|
|
|
/**
|
|
* Relation name.
|
|
*/
|
|
readonly name: string;
|
|
|
|
/**
|
|
* Relation label.
|
|
*/
|
|
readonly label: string;
|
|
|
|
/**
|
|
* Relation description.
|
|
*/
|
|
readonly description?: string;
|
|
|
|
/**
|
|
* Relation icon.
|
|
*/
|
|
readonly icon?: string;
|
|
|
|
/**
|
|
* Relation join column.
|
|
*/
|
|
readonly joinColumn?: string;
|
|
};
|
|
|
|
export interface WorkspaceDynamicRelationMetadataArgs {
|
|
/**
|
|
* Class to which relation is applied.
|
|
*/
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
readonly target: Function;
|
|
|
|
/**
|
|
* Factory function
|
|
*/
|
|
readonly argsFactory: WorkspaceDynamicRelationMetadataArgsFactory;
|
|
|
|
/**
|
|
* Relation type.
|
|
*/
|
|
readonly type: RelationMetadataType;
|
|
|
|
/**
|
|
* 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 nullable field.
|
|
*/
|
|
readonly isNullable: boolean;
|
|
|
|
/**
|
|
* Field gate.
|
|
*/
|
|
readonly gate?: Gate;
|
|
}
|