import { ApiProperty } from '@nestjs/swagger'; import { IsString, IsArray, IsObject } from 'class-validator'; import { SponsorDashboardMetricsDTO } from './SponsorDashboardMetricsDTO'; import { SponsoredLeagueDTO } from './SponsoredLeagueDTO'; import { SponsorDashboardInvestmentDTO } from './SponsorDashboardInvestmentDTO'; import { SponsorshipDTO } from './SponsorshipDTO'; import { ActivityItemDTO } from './ActivityItemDTO'; import { RenewalAlertDTO } from './RenewalAlertDTO'; export class SponsorDashboardDTO { @ApiProperty() @IsString() sponsorId: string; @ApiProperty() @IsString() sponsorName: string; @ApiProperty({ type: SponsorDashboardMetricsDTO }) metrics: SponsorDashboardMetricsDTO; @ApiProperty({ type: [SponsoredLeagueDTO] }) sponsoredLeagues: SponsoredLeagueDTO[]; @ApiProperty({ type: SponsorDashboardInvestmentDTO }) investment: SponsorDashboardInvestmentDTO; @ApiProperty({ type: Object }) sponsorships: { leagues: SponsorshipDTO[]; teams: SponsorshipDTO[]; drivers: SponsorshipDTO[]; races: SponsorshipDTO[]; platform: SponsorshipDTO[]; }; @ApiProperty({ type: [ActivityItemDTO] }) recentActivity: ActivityItemDTO[]; @ApiProperty({ type: [RenewalAlertDTO] }) upcomingRenewals: RenewalAlertDTO[]; }