63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
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[];
|
|
} |