From bb42195ef5da0351653a7138b88c5fe06a04569a Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Wed, 19 Aug 2026 16:19:06 +0200 Subject: [PATCH] feat(combat): wire CombatModule into the application Provide and export CharacterCombatStatsService from CharactersModule, create CombatModule (registering the combat entities, controllers, CombatService and CombatEngineService, and importing TravelModule and CharactersModule), and register CombatModule in AppModule so the three combat endpoints (attack, get combat, post action) are reachable from the running app. --- apps/api/src/app.module.ts | 2 ++ apps/api/src/characters/characters.module.ts | 4 +++- apps/api/src/combat/combat.module.ts | 25 ++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 apps/api/src/combat/combat.module.ts diff --git a/apps/api/src/app.module.ts b/apps/api/src/app.module.ts index fff7a2a..c8be7e0 100644 --- a/apps/api/src/app.module.ts +++ b/apps/api/src/app.module.ts @@ -1,5 +1,6 @@ import { Module } from '@nestjs/common'; import { CharactersModule } from './characters/characters.module'; +import { CombatModule } from './combat/combat.module'; import { DatabaseModule } from './database/database.module'; import { HealthModule } from './health/health.module'; import { HuntingModule } from './hunting/hunting.module'; @@ -14,6 +15,7 @@ import { WorldModule } from './world/world.module'; TravelModule, WorldModule, HuntingModule, + CombatModule, ], }) export class AppModule {} diff --git a/apps/api/src/characters/characters.module.ts b/apps/api/src/characters/characters.module.ts index cb5e2c3..f8a46c1 100644 --- a/apps/api/src/characters/characters.module.ts +++ b/apps/api/src/characters/characters.module.ts @@ -1,5 +1,6 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { CharacterCombatStatsService } from './character-combat-stats.service'; import { CharactersController } from './characters.controller'; import { CharactersService } from './characters.service'; import { Character } from './entities/character.entity'; @@ -7,6 +8,7 @@ import { Character } from './entities/character.entity'; @Module({ imports: [TypeOrmModule.forFeature([Character])], controllers: [CharactersController], - providers: [CharactersService], + providers: [CharactersService, CharacterCombatStatsService], + exports: [CharacterCombatStatsService], }) export class CharactersModule {} diff --git a/apps/api/src/combat/combat.module.ts b/apps/api/src/combat/combat.module.ts new file mode 100644 index 0000000..10ace1b --- /dev/null +++ b/apps/api/src/combat/combat.module.ts @@ -0,0 +1,25 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CharactersModule } from '../characters/characters.module'; +import { Character } from '../characters/entities/character.entity'; +import { Hunt } from '../hunting/entities/hunt.entity'; +import { HuntEncounter } from '../hunting/entities/hunt-encounter.entity'; +import { MonsterDefinition } from '../monsters/entities/monster-definition.entity'; +import { TravelModule } from '../travel/travel.module'; +import { CombatEngineService } from './combat-engine.service'; +import { CombatController } from './combat.controller'; +import { CombatService } from './combat.service'; +import { Combat } from './entities/combat.entity'; +import { CombatEvent } from './entities/combat-event.entity'; +import { HuntEncounterAttackController } from './hunt-encounter-attack.controller'; + +@Module({ + imports: [ + TypeOrmModule.forFeature([Character, Hunt, HuntEncounter, MonsterDefinition, Combat, CombatEvent]), + TravelModule, + CharactersModule, + ], + controllers: [CombatController, HuntEncounterAttackController], + providers: [CombatService, CombatEngineService], +}) +export class CombatModule {}