twenty / packages /twenty-server /src /engine /metadata-modules /command-menu-item /dtos /create-command-menu-item.input.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
2.27 kB
import { Field, Float, InputType } from '@nestjs/graphql';
import {
IsBoolean,
IsEnum,
IsNotEmpty,
IsNumber,
IsObject,
IsOptional,
IsString,
IsUUID,
} from 'class-validator';
import GraphQLJSON from 'graphql-type-json';
import { UUIDScalarType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
import { type CommandMenuItemPayload } from 'src/engine/metadata-modules/command-menu-item/dtos/command-menu-item-payload.union';
import { CommandMenuItemAvailabilityType } from 'src/engine/metadata-modules/command-menu-item/enums/command-menu-item-availability-type.enum';
import { EngineComponentKey } from 'src/engine/metadata-modules/command-menu-item/enums/engine-component-key.enum';
@InputType()
export class CreateCommandMenuItemInput {
@IsUUID()
@IsOptional()
@Field(() => UUIDScalarType, { nullable: true })
workflowVersionId?: string;
@IsUUID()
@IsOptional()
@Field(() => UUIDScalarType, { nullable: true })
frontComponentId?: string;
@IsEnum(EngineComponentKey)
@IsNotEmpty()
@Field(() => EngineComponentKey)
engineComponentKey: EngineComponentKey;
@IsString()
@IsNotEmpty()
@Field()
label: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
icon?: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
shortLabel?: string;
@IsNumber()
@IsOptional()
@Field(() => Float, { nullable: true })
position?: number;
@IsBoolean()
@IsOptional()
@Field({ nullable: true })
isPinned?: boolean;
@IsEnum(CommandMenuItemAvailabilityType)
@IsOptional()
@Field(() => CommandMenuItemAvailabilityType, { nullable: true })
availabilityType?: CommandMenuItemAvailabilityType;
@IsString({ each: true })
@IsOptional()
@Field(() => [String], { nullable: true })
hotKeys?: string[];
@IsString()
@IsOptional()
@Field({ nullable: true })
conditionalAvailabilityExpression?: string;
@IsUUID()
@IsOptional()
@Field(() => UUIDScalarType, { nullable: true })
availabilityObjectMetadataId?: string;
@IsObject()
@IsOptional()
@Field(() => GraphQLJSON, { nullable: true })
payload?: CommandMenuItemPayload;
@IsUUID()
@IsOptional()
@Field(() => UUIDScalarType, { nullable: true })
pageLayoutId?: string;
}