import { ApiProperty } from '@nestjs/swagger';

import { DriverProfileDriverSummaryDTO } from './DriverProfileDriverSummaryDTO';
import { DriverProfileExtendedProfileDTO } from './DriverProfileExtendedProfileDTO';
import { DriverProfileFinishDistributionDTO } from './DriverProfileFinishDistributionDTO';
import { DriverProfileSocialSummaryDTO } from './DriverProfileSocialSummaryDTO';
import { DriverProfileStatsDTO } from './DriverProfileStatsDTO';
import { DriverProfileTeamMembershipDTO } from './DriverProfileTeamMembershipDTO';

export class GetDriverProfileOutputDTO {
  @ApiProperty({ type: DriverProfileDriverSummaryDTO, nullable: true })
  currentDriver!: DriverProfileDriverSummaryDTO | null;

  @ApiProperty({ type: DriverProfileStatsDTO, nullable: true })
  stats!: DriverProfileStatsDTO | null;

  @ApiProperty({ type: DriverProfileFinishDistributionDTO, nullable: true })
  finishDistribution!: DriverProfileFinishDistributionDTO | null;

  @ApiProperty({ type: [DriverProfileTeamMembershipDTO] })
  teamMemberships!: DriverProfileTeamMembershipDTO[];

  @ApiProperty({ type: DriverProfileSocialSummaryDTO })
  socialSummary!: DriverProfileSocialSummaryDTO;

  @ApiProperty({ type: DriverProfileExtendedProfileDTO, nullable: true })
  extendedProfile!: DriverProfileExtendedProfileDTO | null;
}