generated from fahricansecer/boilerplate-be
@@ -1,48 +1,176 @@
|
||||
import { IsString, IsOptional, IsArray, ValidateNested, IsNumber, IsIn } from 'class-validator';
|
||||
import { Type } from 'class-transformer';
|
||||
|
||||
export class UploadedFileDto {
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
@IsString()
|
||||
content: string;
|
||||
}
|
||||
|
||||
export class AnalyzeContentDto {
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => UploadedFileDto)
|
||||
transcripts: UploadedFileDto[];
|
||||
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => UploadedFileDto)
|
||||
comments: UploadedFileDto[];
|
||||
tone: string;
|
||||
duration: string;
|
||||
speakerName: string;
|
||||
topicFocus: string;
|
||||
targetAudience: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
tone?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
duration?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
speakerName?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
topicFocus?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetAudience?: string;
|
||||
}
|
||||
|
||||
export class StrategyResultDto {
|
||||
@IsString()
|
||||
title: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
psychologicalTheme?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
inspiredByGap?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
hook?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
thumbnailConcept?: string;
|
||||
segments: {
|
||||
type: string;
|
||||
duration: string;
|
||||
description: string;
|
||||
keyPoints: string[];
|
||||
neuroObjective?: string;
|
||||
}[];
|
||||
interviewQuestions: string[];
|
||||
selectedComments: {
|
||||
username?: string;
|
||||
text: string;
|
||||
insightValue?: string;
|
||||
sourceFile?: string;
|
||||
}[];
|
||||
commercialAnalysis: {
|
||||
suitableIndustries: string[];
|
||||
brandSafetyScore: number;
|
||||
suggestedBrands: string[];
|
||||
monetizationPotential: string;
|
||||
};
|
||||
chartData?: { topic: string; emotionalArousal: number }[];
|
||||
|
||||
@IsArray()
|
||||
@IsOptional()
|
||||
segments?: any[];
|
||||
|
||||
@IsArray()
|
||||
@IsOptional()
|
||||
interviewQuestions?: string[];
|
||||
|
||||
@IsArray()
|
||||
@IsOptional()
|
||||
selectedComments?: any[];
|
||||
|
||||
@IsOptional()
|
||||
commercialAnalysis?: any;
|
||||
|
||||
@IsArray()
|
||||
@IsOptional()
|
||||
chartData?: any[];
|
||||
}
|
||||
|
||||
export class CommercialAnalysisDto {
|
||||
@IsString()
|
||||
title: string;
|
||||
|
||||
@IsArray()
|
||||
@IsString({ each: true })
|
||||
industries: string[];
|
||||
}
|
||||
|
||||
export class CreateProjectDto {
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
tone?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetDuration?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
speakerName?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetAudience?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
formatDescription?: string;
|
||||
}
|
||||
|
||||
export class UpdateProjectDto {
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
name?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
tone?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetDuration?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
speakerName?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetAudience?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
formatDescription?: string;
|
||||
}
|
||||
|
||||
export class AddVideoDto {
|
||||
@IsString()
|
||||
youtubeUrl: string;
|
||||
}
|
||||
|
||||
export class AddDocumentDto {
|
||||
@IsString()
|
||||
title: string;
|
||||
|
||||
@IsString()
|
||||
content: string;
|
||||
|
||||
@IsString()
|
||||
@IsIn(['transcript', 'comments'])
|
||||
type: 'transcript' | 'comments';
|
||||
}
|
||||
|
||||
export class CreateEpisodeDto {
|
||||
@IsString()
|
||||
topic: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
targetAudience?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
duration?: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
format?: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user