import { Field, ObjectType, registerEnumType } from '@nestjs/graphql'; import { IsEnum, IsNotEmpty } from 'class-validator'; import { Relation } from 'typeorm'; import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto'; import { ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto'; registerEnumType(RelationType, { name: 'RelationType', description: 'Relation type', }); @ObjectType('Relation') export class RelationDTO { @IsEnum(RelationType) @IsNotEmpty() @Field(() => RelationType) type: RelationType; @IsNotEmpty() @Field(() => ObjectMetadataDTO) sourceObjectMetadata: Relation; @IsNotEmpty() @Field(() => ObjectMetadataDTO) targetObjectMetadata: Relation; @IsNotEmpty() @Field(() => FieldMetadataDTO) sourceFieldMetadata: Relation; @IsNotEmpty() @Field(() => FieldMetadataDTO) targetFieldMetadata: Relation; }