generated from fahricansecer/boilerplate-be
Initial commit
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { IsString, IsOptional, IsBoolean, IsArray } from 'class-validator';
|
||||
|
||||
// SourceType and CharacterRole are string unions - using string here for decorator compatibility
|
||||
|
||||
/**
|
||||
* CreateSourceDto
|
||||
*
|
||||
* DTO for adding a research source.
|
||||
*
|
||||
* TR: Araştırma kaynağı eklemek için DTO.
|
||||
* EN: DTO for adding a research source.
|
||||
*/
|
||||
export class CreateSourceDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
|
||||
@ApiProperty({ description: 'Source title' })
|
||||
@IsString()
|
||||
title: string;
|
||||
|
||||
@ApiProperty({ description: 'Source URL' })
|
||||
@IsString()
|
||||
url: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Source snippet/summary' })
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
snippet?: string;
|
||||
|
||||
@ApiProperty({ description: 'Source type' })
|
||||
@IsString()
|
||||
type: string; // article, video, interview, etc.
|
||||
|
||||
@ApiPropertyOptional({ description: 'Whether source is selected' })
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
selected?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* CreateBriefItemDto
|
||||
*
|
||||
* DTO for adding a brief question/answer.
|
||||
*
|
||||
* TR: Brief sorusu/cevabı eklemek için DTO.
|
||||
* EN: DTO for adding a brief question/answer.
|
||||
*/
|
||||
export class CreateBriefItemDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
|
||||
@ApiProperty({ description: 'Question text' })
|
||||
@IsString()
|
||||
question: string;
|
||||
|
||||
@ApiProperty({ description: 'Answer text' })
|
||||
@IsString()
|
||||
answer: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Sort order' })
|
||||
@IsOptional()
|
||||
sortOrder?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* CreateCharacterDto
|
||||
*
|
||||
* DTO for creating a character profile.
|
||||
*
|
||||
* TR: Karakter profili oluşturmak için DTO.
|
||||
* EN: DTO for creating a character profile.
|
||||
*/
|
||||
export class CreateCharacterDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
|
||||
@ApiProperty({ description: 'Character name' })
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
@ApiProperty({ description: 'Character role' })
|
||||
@IsString()
|
||||
role: string; // Protagonist, Antagonist, etc.
|
||||
|
||||
@ApiPropertyOptional({ description: 'Character values (inner beliefs)' })
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
values?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Character traits (personality)' })
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
traits?: string;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
description: 'Character mannerisms (external behavior)',
|
||||
})
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
mannerisms?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* PerformResearchDto
|
||||
*
|
||||
* DTO for performing deep research.
|
||||
*
|
||||
* TR: Derin araştırma yapmak için DTO.
|
||||
* EN: DTO for performing deep research.
|
||||
*/
|
||||
export class PerformResearchDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Additional research query' })
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
additionalQuery?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* GenerateDiscoveryQuestionsDto
|
||||
*
|
||||
* DTO for generating creative brief discovery questions.
|
||||
*
|
||||
* TR: Yaratıcı brief keşif soruları oluşturmak için DTO.
|
||||
* EN: DTO for generating creative brief discovery questions.
|
||||
*/
|
||||
export class GenerateDiscoveryQuestionsDto {
|
||||
@ApiProperty({ description: 'Topic to generate questions for' })
|
||||
@IsString()
|
||||
topic: string;
|
||||
|
||||
@ApiProperty({ description: 'Language for questions' })
|
||||
@IsString()
|
||||
language: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Existing questions to avoid' })
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
existingQuestions?: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* GenerateLoglineDto
|
||||
*
|
||||
* DTO for generating logline and high concept.
|
||||
*
|
||||
* TR: Logline ve high concept oluşturmak için DTO.
|
||||
* EN: DTO for generating logline and high concept.
|
||||
*/
|
||||
export class GenerateLoglineDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* GenerateCharactersDto
|
||||
*
|
||||
* DTO for auto-generating character profiles.
|
||||
*
|
||||
* TR: Otomatik karakter profilleri oluşturmak için DTO.
|
||||
* EN: DTO for auto-generating character profiles.
|
||||
*/
|
||||
export class GenerateCharactersDto {
|
||||
@ApiProperty({ description: 'Project ID' })
|
||||
@IsString()
|
||||
projectId: string;
|
||||
}
|
||||
Reference in New Issue
Block a user