import { ApiProperty } from '@nestjs/swagger';
import {
  ApiFilterParams,
  ApiFilterParamsDecorator,
} from '../../common/types/api-filter-params';
import {
  FilterProp,
  FilterPropTypes,
} from '../../common/types/filter-prop-decorators';

export class ProjectStatsQueryDTOWhere {
  @FilterProp(FilterPropTypes.DATE_RANGE)
  range?: [Date, Date];
}

@ApiFilterParamsDecorator(ProjectStatsQueryDTOWhere)
export class ProjectStatsQueryDTO extends ApiFilterParams<ProjectStatsQueryDTOWhere> {}

export class ProjectStatsParameterDTO {
  @ApiProperty({})
  date: string;
  @ApiProperty({})
  value: number;
}

export class ProjectStatsByViewsAndVisitorsDTO {
  @ApiProperty({
    type: ProjectStatsParameterDTO,
    isArray: true,
  })
  views: ProjectStatsParameterDTO[];

  @ApiProperty({
    type: ProjectStatsParameterDTO,
    isArray: true,
  })
  visitors: ProjectStatsParameterDTO[];
}
