39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { ViewData } from "../contracts/view-data/ViewData";
|
|
|
|
|
|
export interface SponsorDashboardViewData extends ViewData {
|
|
sponsorName: string;
|
|
totalImpressions: string;
|
|
totalInvestment: string;
|
|
metrics: {
|
|
impressionsChange: number;
|
|
viewersChange: number;
|
|
exposureChange: number;
|
|
};
|
|
categoryData: {
|
|
leagues: { count: number; countLabel: string; impressions: number; impressionsLabel: string };
|
|
teams: { count: number; countLabel: string; impressions: number; impressionsLabel: string };
|
|
drivers: { count: number; countLabel: string; impressions: number; impressionsLabel: string };
|
|
races: { count: number; countLabel: string; impressions: number; impressionsLabel: string };
|
|
platform: { count: number; countLabel: string; impressions: number; impressionsLabel: string };
|
|
};
|
|
sponsorships: Record<string, unknown>; // From DTO
|
|
activeSponsorships: number;
|
|
formattedTotalInvestment: string;
|
|
costPerThousandViews: string;
|
|
upcomingRenewals: Array<{
|
|
id: string;
|
|
type: 'league' | 'team' | 'driver' | 'race' | 'platform';
|
|
name: string;
|
|
formattedRenewDate: string;
|
|
formattedPrice: string;
|
|
}>;
|
|
recentActivity: Array<{
|
|
id: string;
|
|
message: string;
|
|
time: string;
|
|
typeColor: string;
|
|
formattedImpressions?: string | null;
|
|
}>;
|
|
}
|