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>