feat(sprint5): audit fixes — transactions, indexes, stat distribution, rest, forge cost
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 35s
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 35s
P0 — Race conditions fixées avec pessimistic_write transactions : combat (double-spend endurance), forge (double upgrade), craft (consumeMaterials atomique), equip (item swap). Forge : coût or (50-1000) + endurance (15) ajouté. Combat : item stat bonuses (force/agilite/intelligence/chance) appliqués. P1 — Features manquantes : POST /api/characters/stats — distribution stat points (avec lock). POST /api/characters/rest — repos auberge (+50% HP, -20 endurance). Vitalité : +10 HP max par point distribué. P2 — Indexes DB ajoutés : character_id sur character_items, character_materials, combat_logs, craft_jobs, player_achievements, community_contributions. Composite (characterId, materialId) sur character_materials. period sur hall_of_fame. achievement_id sur player_achievements. P3 — Cleanup : @nestjs/jwt et pg retirés de package.json.
This commit is contained in:
18
src/character/dto/distribute-stats.dto.ts
Normal file
18
src/character/dto/distribute-stats.dto.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { IsInt, Min, IsOptional } from 'class-validator';
|
||||
|
||||
export class DistributeStatsDto {
|
||||
@IsInt() @Min(0) @IsOptional()
|
||||
force?: number = 0;
|
||||
|
||||
@IsInt() @Min(0) @IsOptional()
|
||||
agilite?: number = 0;
|
||||
|
||||
@IsInt() @Min(0) @IsOptional()
|
||||
intelligence?: number = 0;
|
||||
|
||||
@IsInt() @Min(0) @IsOptional()
|
||||
chance?: number = 0;
|
||||
|
||||
@IsInt() @Min(0) @IsOptional()
|
||||
vitalite?: number = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user