Ajout d'une structure de tentatives de courses (Run)

This commit is contained in:
2024-12-08 22:37:57 +01:00
parent 23081e0220
commit 31c44eab6e
10 changed files with 216 additions and 64 deletions

View File

@ -12,7 +12,8 @@ export class ChallengeActionsService {
constructor(private prisma: PrismaService) { }
async create(authenticatedPlayer: Player, createChallengeActionDto: CreateChallengeActionDto): Promise<ChallengeAction> {
const data = { ...createChallengeActionDto, playerId: authenticatedPlayer.id }
const game = await this.prisma.game.findUnique({ where: { id: 1 } })
const data = { ...createChallengeActionDto, playerId: authenticatedPlayer.id, runId: game.currentRunId }
return await this.prisma.challengeAction.create({
data: data,
})

View File

@ -7,33 +7,55 @@ export class ChallengeActionEntity implements ChallengeAction {
Object.assign(this, partial)
}
@ApiProperty({ description: "Identifiant unique" })
/**
* Identifiant unique
*/
id: number
@ApiProperty({ description: "Identifiant de læ joueur⋅se effectuant le défi" })
/**
* Identifiant de læ joueur⋅se effectuant le défi
*/
playerId: number
@ApiProperty({ description: "Identifiant du défi rattaché à l'action" })
/**
* Identifiant du défi rattaché à l'action
*/
challengeId: number
@ApiProperty({ description: "Est-ce que le défi est actuellement en train d'être réalisé" })
/**
* Est-ce que le défi est actuellement en train d'être réalisé
*/
active: boolean
@ApiProperty({ description: "Est-ce que le défi a été réussi" })
/**
* Est-ce que le défi a été réussi
*/
success: boolean
@ApiProperty({ description: "Heure à laquelle le défi a été démarré" })
/**
* Heure à laquelle le défi a été démarré
*/
start: Date
/**
* Heure à laquelle le défi a été terminé
*/
@IsOptional()
@ApiProperty({ description: "Heure à laquelle le défi a été terminé", required: false, nullable: true })
end: Date
end: Date | null = null
@IsOptional()
@ApiProperty({ description: "Heure à laquelle la pénalité a commencé, si applicable", required: false, nullable: true })
penaltyStart: Date
/**
* Heure à laquelle la pénalité a commencé, si applicable
*/
penaltyStart: Date | null = null
/**
* Heure à laquelle la pénalité s'est terminée, si applicable
*/
@IsOptional()
@ApiProperty({ description: "Heure à laquelle la pénalité s'est terminée, si applicable", required: false, nullable: true })
penaltyEnd: Date
penaltyEnd: Date | null = null
/**
* Identifiant de la course pendant laquelle le challenge est réalisé
*/
runId: number
}