Skip to main content

CharacterRepository

Defined in: src/modules/core/characters/character.repository.ts:44

Repository service for character database operations.

Example​

class MyService {
    private characterRepository = inject(CharacterRepository);
 
    async getCharacters(playerId: string) {
        return await this.characterRepository.findByPlayer(playerId);
    }
}

Constructors​

Constructor​

new CharacterRepository(): CharacterRepository;

Returns​

CharacterRepository

Methods​

countByPlayer()​

countByPlayer(playerId: string): Promise<number>;

Defined in: src/modules/core/characters/character.repository.ts:131

Get the count of characters for a player.

Parameters​

ParameterTypeDescription
playerIdstringThe player's profile ID.

Returns​

Promise<number>

The number of characters the player has.


create()​

create(
   playerId: string, 
   slot: number, 
   name: string, 
   initialData?: Partial\<CharacterData\>, 
   db?: Db, 
session?: ClientSession): Promise\<Character\>;

Defined in: src/modules/core/characters/character.repository.ts:149

Create a new character for a player in a specific slot.

Parameters​

ParameterTypeDescription
playerIdstringThe player's profile ID.
slotnumberThe character slot (0-2).
namestringThe character name.
initialData?Partial<CharacterData>Optional initial character data to merge.
db?DbOptional database instance (for transactions).
session?ClientSessionOptional MongoDB session (for transactions).

Returns​

Promise<Character>

The newly created character.

Throws​

If slot is invalid or already occupied.


delete()​

delete(characterId: string, session?: ClientSession): Promise<boolean>;

Defined in: src/modules/core/characters/character.repository.ts:262

Delete a character by ID.

Parameters​

ParameterTypeDescription
characterIdstringThe character's ID.
session?ClientSessionOptional MongoDB session (for transactions).

Returns​

Promise<boolean>

True if a character was deleted, false otherwise.


findById()​

findById(characterId: string): Promise<Character | null>;

Defined in: src/modules/core/characters/character.repository.ts:118

Find a character by ID.

Parameters​

ParameterTypeDescription
characterIdstringThe character's ID.

Returns​

Promise<Character | null>

The character if found, null otherwise.


findByPlayer()​

findByPlayer(playerId: string): Promise<Character[]>;

Defined in: src/modules/core/characters/character.repository.ts:52

Find all characters belonging to a player.

Parameters​

ParameterTypeDescription
playerIdstringThe player's profile ID.

Returns​

Promise<Character[]>

Array of characters belonging to the player, sorted by slot.


findBySlot()​

findBySlot(playerId: string, slot: number): Promise<Character | null>;

Defined in: src/modules/core/characters/character.repository.ts:101

Find a character by player and slot.

Parameters​

ParameterTypeDescription
playerIdstringThe player's profile ID.
slotnumberThe character slot (0-2).

Returns​

Promise<Character | null>

The character if found, null otherwise.


findSummariesByPlayer()​

findSummariesByPlayer(playerId: string): Promise<CharacterSummary[]>;

Defined in: src/modules/core/characters/character.repository.ts:69

Find all character summaries for a player (for selection UI).

Parameters​

ParameterTypeDescription
playerIdstringThe player's profile ID.

Returns​

Promise<CharacterSummary[]>

Array of character summaries, sorted by slot.


save()​

save(character: Character): Promise<void>;

Defined in: src/modules/core/characters/character.repository.ts:202

Save/update a complete character document.

Parameters​

ParameterTypeDescription
characterCharacterThe character to save.

Returns​

Promise<void>


updateDataFields()​

updateDataFields(characterId: string, patch: Partial\<CharacterData\>): Promise<void>;

Defined in: src/modules/core/characters/character.repository.ts:219

Update specific fields in a character's data object. Uses MongoDB $set operator to only update specified fields.

Parameters​

ParameterTypeDescription
characterIdstringThe character's ID.
patchPartial<CharacterData>Partial character data to merge.

Returns​

Promise<void>


updateName()​

updateName(characterId: string, name: string): Promise<void>;

Defined in: src/modules/core/characters/character.repository.ts:241

Update the character name.

Parameters​

ParameterTypeDescription
characterIdstringThe character's ID.
namestringThe new name.

Returns​

Promise<void>