Files
n8n-enterprise-unlocked/packages/cli/src/controllers/survey-answers.dto.ts
2024-09-12 19:07:18 +03:00

111 lines
2.0 KiB
TypeScript

import { Expose } from 'class-transformer';
import { IsString, IsArray, IsOptional, IsEmail, IsEnum } from 'class-validator';
import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow';
import { NoXss } from '@/validators/no-xss.validator';
export class PersonalizationSurveyAnswersV4 implements IPersonalizationSurveyAnswersV4 {
@NoXss()
@Expose()
@IsEnum(['v4'])
version: 'v4';
@NoXss()
@Expose()
@IsString()
personalization_survey_submitted_at: string;
@NoXss()
@Expose()
@IsString()
personalization_survey_n8n_version: string;
@Expose()
@IsOptional()
@IsArray()
@NoXss({ each: true })
@IsString({ each: true })
automationGoalDevops?: string[] | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
automationGoalDevopsOther?: string | null;
@NoXss({ each: true })
@Expose()
@IsOptional()
@IsArray()
@IsString({ each: true })
companyIndustryExtended?: string[] | null;
@NoXss({ each: true })
@Expose()
@IsOptional()
@IsString({ each: true })
otherCompanyIndustryExtended?: string[] | null;
@IsEnum(['<20', '20-99', '100-499', '500-999', '1000+', 'personalUser'])
@Expose()
@IsOptional()
@IsString()
companySize?: string | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
companyType?: string | null;
@NoXss({ each: true })
@Expose()
@IsOptional()
@IsArray()
@IsString({ each: true })
automationGoalSm?: string[] | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
automationGoalSmOther?: string | null;
@NoXss({ each: true })
@Expose()
@IsOptional()
@IsArray()
@IsString({ each: true })
usageModes?: string[] | null;
@NoXss()
@Expose()
@IsOptional()
@IsEmail()
email?: string | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
role?: string | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
roleOther?: string | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
reportedSource?: string | null;
@NoXss()
@Expose()
@IsOptional()
@IsString()
reportedSourceOther?: string | null;
}