feat(challenges): 添加挑战源和分享代码字段,更新挑战详情和列表接口
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 })
|
||||
|
||||
Reference in New Issue
Block a user