diff --git a/src/challenges/challenges.service.ts b/src/challenges/challenges.service.ts index fa50cda..e5978b4 100644 --- a/src/challenges/challenges.service.ts +++ b/src/challenges/challenges.service.ts @@ -178,6 +178,8 @@ export class ChallengesService { isJoined: Boolean(participation), type: challenge.type, badge: challenge.type === ChallengeType.SLEEP ? sleepBadge : undefined, + source: challenge.source, + shareCode: challenge.shareCode, }; }); } @@ -284,6 +286,9 @@ export class ChallengesService { unit: challenge.progressUnit, type: challenge.type, badge, + creatorId: challenge.creatorId, + shareCode: challenge.shareCode, + source: challenge.source, }; } diff --git a/src/challenges/dto/challenge-detail.dto.ts b/src/challenges/dto/challenge-detail.dto.ts index 7515657..70bf852 100644 --- a/src/challenges/dto/challenge-detail.dto.ts +++ b/src/challenges/dto/challenge-detail.dto.ts @@ -1,5 +1,5 @@ import { ChallengeProgressDto, RankingItemDto } from './challenge-progress.dto'; -import { ChallengeType } from '../models/challenge.model'; +import { ChallengeSource, ChallengeType } from '../models/challenge.model'; export interface BadgeInfoDto { code: string; @@ -29,4 +29,7 @@ export interface ChallengeDetailDto { type: ChallengeType; unit: string; badge?: BadgeInfoDto; + creatorId: string | null; + shareCode?: string | null; + source: ChallengeSource; } diff --git a/src/challenges/dto/challenge-list.dto.ts b/src/challenges/dto/challenge-list.dto.ts index ad16910..8d8def1 100644 --- a/src/challenges/dto/challenge-list.dto.ts +++ b/src/challenges/dto/challenge-list.dto.ts @@ -1,4 +1,4 @@ -import { ChallengeStatus, ChallengeType } from '../models/challenge.model'; +import { ChallengeSource, ChallengeStatus, ChallengeType } from '../models/challenge.model'; import { ChallengeProgressDto } from './challenge-progress.dto'; export interface BadgeInfoDto { @@ -30,6 +30,7 @@ export interface ChallengeListItemDto { type: ChallengeType; unit: string; badge?: BadgeInfoDto; + source: ChallengeSource; } export interface ChallengeListResponseDto { diff --git a/src/challenges/dto/create-custom-challenge.dto.ts b/src/challenges/dto/create-custom-challenge.dto.ts index 60037fd..23edd74 100644 --- a/src/challenges/dto/create-custom-challenge.dto.ts +++ b/src/challenges/dto/create-custom-challenge.dto.ts @@ -22,12 +22,10 @@ export class CreateCustomChallengeDto { @ApiProperty({ description: '开始时间戳(毫秒)', example: 1704067200000 }) @IsNumber() - @Min(Date.now()) startAt: number; @ApiProperty({ description: '结束时间戳(毫秒)', example: 1705881600000 }) @IsNumber() - @Min(Date.now() + 86400000) // 至少未来 1 天 endAt: number; @ApiProperty({ description: '每日目标值(如喝水8杯)', example: 8, minimum: 1, maximum: 1000 })