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
| Parameter | Type | Description |
|---|---|---|
playerId | string | The 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
| Parameter | Type | Description |
|---|---|---|
playerId | string | The player's profile ID. |
slot | number | The character slot (0-2). |
name | string | The character name. |
initialData? | Partial<CharacterData> | Optional initial character data to merge. |
db? | Db | Optional database instance (for transactions). |
session? | ClientSession | Optional 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
| Parameter | Type | Description |
|---|---|---|
characterId | string | The character's ID. |
session? | ClientSession | Optional 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
| Parameter | Type | Description |
|---|---|---|
characterId | string | The 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
| Parameter | Type | Description |
|---|---|---|
playerId | string | The 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
| Parameter | Type | Description |
|---|---|---|
playerId | string | The player's profile ID. |
slot | number | The 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
| Parameter | Type | Description |
|---|---|---|
playerId | string | The 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
| Parameter | Type | Description |
|---|---|---|
character | Character | The 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
| Parameter | Type | Description |
|---|---|---|
characterId | string | The character's ID. |
patch | Partial<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
| Parameter | Type | Description |
|---|---|---|
characterId | string | The character's ID. |
name | string | The new name. |
Returns
Promise<void>