base con autenticacion, registro, modulo encuestas
This commit is contained in:
63
apps/api/src/features/surveys/dto/statistics-response.dto.ts
Normal file
63
apps/api/src/features/surveys/dto/statistics-response.dto.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
|
||||
export class QuestionStatDto {
|
||||
@ApiProperty({ description: 'Question identifier' })
|
||||
questionId: string;
|
||||
|
||||
@ApiProperty({ description: 'Question label' })
|
||||
label: string;
|
||||
|
||||
@ApiProperty({ description: 'Count of responses for this option' })
|
||||
count: number;
|
||||
}
|
||||
|
||||
export class SurveyDetailDto {
|
||||
@ApiProperty({ description: 'Survey ID' })
|
||||
id: number;
|
||||
|
||||
@ApiProperty({ description: 'Survey title' })
|
||||
title: string;
|
||||
|
||||
@ApiProperty({ description: 'Survey description' })
|
||||
description: string;
|
||||
|
||||
@ApiProperty({ description: 'Total responses received' })
|
||||
totalResponses: number;
|
||||
|
||||
@ApiProperty({ description: 'Target audience' })
|
||||
targetAudience: any;
|
||||
|
||||
@ApiProperty({ description: 'Creation date' })
|
||||
createdAt: string;
|
||||
|
||||
@ApiProperty({ description: 'Closing date' })
|
||||
closingDate?: string | null;
|
||||
|
||||
@ApiProperty({ description: 'Question statistics', type: [QuestionStatDto] })
|
||||
// @ApiProperty({ description: 'Question statistics' })
|
||||
questionStats: QuestionStatDto[];
|
||||
// questionStats: any;
|
||||
}
|
||||
|
||||
export class SurveyStatisticsResponseDto {
|
||||
@ApiProperty({ description: 'Total number of surveys' })
|
||||
totalSurveys: number;
|
||||
|
||||
@ApiProperty({ description: 'Total number of responses across all surveys' })
|
||||
totalResponses: number;
|
||||
|
||||
@ApiProperty({ description: 'Completion rate percentage' })
|
||||
completionRate: number;
|
||||
|
||||
@ApiProperty({ description: 'Surveys created by month' })
|
||||
surveysByMonth: { month: string; count: number }[];
|
||||
|
||||
@ApiProperty({ description: 'Responses by audience type' })
|
||||
responsesByAudience: { name: any; value: number }[];
|
||||
|
||||
@ApiProperty({ description: 'Response distribution by survey' })
|
||||
responseDistribution: { title: string; responses: number }[];
|
||||
|
||||
@ApiProperty({ description: 'Detailed statistics for each survey', type: [SurveyDetailDto] })
|
||||
surveyDetails: SurveyDetailDto[];
|
||||
}
|
||||
Reference in New Issue
Block a user