Initial commit

This commit is contained in:
Harun CAN
2026-03-23 01:59:17 +03:00
commit 458127ce76
136 changed files with 26214 additions and 0 deletions
+175
View File
@@ -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;
}