53 lines
1.0 KiB
TypeScript
53 lines
1.0 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import { IsOptional, IsString } from 'class-validator';
|
|
|
|
export type DashboardFeedItemType =
|
|
| 'friend-joined-league'
|
|
| 'friend-joined-team'
|
|
| 'friend-finished-race'
|
|
| 'friend-new-personal-best'
|
|
| 'new-race-scheduled'
|
|
| 'new-result-posted'
|
|
| 'league-highlight';
|
|
|
|
export class DashboardFeedItemSummaryDTO {
|
|
@ApiProperty()
|
|
@IsString()
|
|
id!: string;
|
|
|
|
@ApiProperty({
|
|
enum: [
|
|
'friend-joined-league',
|
|
'friend-joined-team',
|
|
'friend-finished-race',
|
|
'friend-new-personal-best',
|
|
'new-race-scheduled',
|
|
'new-result-posted',
|
|
'league-highlight',
|
|
],
|
|
})
|
|
type!: DashboardFeedItemType;
|
|
|
|
@ApiProperty()
|
|
@IsString()
|
|
headline!: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsString()
|
|
body?: string;
|
|
|
|
@ApiProperty()
|
|
@IsString()
|
|
timestamp!: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsString()
|
|
ctaLabel?: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsString()
|
|
ctaHref?: string;
|
|
} |