hunk.code_window:       content: command.contentType === 'editor' ? sanitizeMessageContent(command.content) : command.content,
         contentType: command.contentType,
         subject: command.subject,
         type: command.type,
         _organizationId: command.organizationId,
         _environmentId: command.environmentId,
         _creatorId: command.userId,
  
hunk.labels: keep keep keep add keep keep keep
hunk.after_edit:       _feedId: command.feedId,
  
hunk.file_path: apps/api/src/app/message-template/usecases/create-message-template/create-message-template.usecase.ts
hunk.type: add
file: import { IsDefined, IsEnum, IsMongoId, IsOptional, ValidateNested } from 'class-validator';
  import { ChannelTypeEnum, IEmailBlock } from '@novu/shared';
  import { CommandHelper } from '../../../shared/commands/command.helper';
  import { EnvironmentWithUserCommand } from '../../../shared/commands/project.command';
  import { ChannelCTACommand } from '../../../notification-template/usecases/create-notification-template';
  
  export class CreateMessageTemplateCommand extends EnvironmentWithUserCommand {
    static create(data: CreateMessageTemplateCommand) {
      return CommandHelper.create<CreateMessageTemplateCommand>(CreateMessageTemplateCommand, data);
    }
  
    @IsDefined()
    @IsEnum(ChannelTypeEnum)
    type: ChannelTypeEnum;
  
    @IsOptional()
    name?: string;
  
    @IsOptional()
    subject?: string;
  
    @IsDefined()
    content: string | IEmailBlock[];
  
    @IsOptional()
    contentType: 'editor' | 'customHtml';
  
    @IsOptional()
    @ValidateNested()
    cta: ChannelCTACommand;
  
    @IsMongoId()
    parentChangeId: string;
  }
  