hunk.code_window:   header: () => JSX.Element;
     footer: () => JSX.Element;
     listItem: ListItem;
     actionsResultBlock: (templateIdentifier: string, messageAction: IMessageAction) => JSX.Element;
     tabs?: ITab[];
   }
   export interface IStore {
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit:   showUserPreferences?: boolean;
  
hunk.file_path: packages/notification-center/src/index.ts
hunk.type: add
file: import { IsDefined, IsEnum, IsMongoId, IsOptional, IsString, ValidateNested } from 'class-validator';
  import { StepTypeEnum, IEmailBlock, IMessageCTA } from '@novu/shared';
  import { CommandHelper } from '../../../shared/commands/command.helper';
  import { EnvironmentWithUserCommand } from '../../../shared/commands/project.command';
  
  export class CreateMessageTemplateCommand extends EnvironmentWithUserCommand {
    static create(data: CreateMessageTemplateCommand) {
      return CommandHelper.create<CreateMessageTemplateCommand>(CreateMessageTemplateCommand, data);
    }
  
    @IsDefined()
    @IsEnum(StepTypeEnum)
    type: StepTypeEnum;
  
    @IsOptional()
    name?: string;
  
    @IsOptional()
    subject?: string;
  
    @IsOptional()
    title?: string;
  
    @IsDefined()
    content: string | IEmailBlock[];
  
    @IsOptional()
    contentType: 'editor' | 'customHtml';
  
    @IsOptional()
    @ValidateNested()
    cta: IMessageCTA;
  
    @IsOptional()
    @IsString()
    feedId: string;
  
    @IsMongoId()
    parentChangeId: string;
  }
  