Table of Contents

Namespace FishMMO.Database.Npgsql.Services.Interfaces

Namespaces

FishMMO.Database.Npgsql.Services.Interfaces.Actions

Structs

CharacterItemIdAssignment

One row a snapshot assigned an identity to, so the caller can write it back onto the runtime item.

Interfaces

IAccountService

Service interface for account operations following ISP principle. All operations are async and return DatabaseResult for consistent error handling. Implements execution strategies for automatic retry on transient database failures.

IAuthTokenService

Service interface for managing authentication tokens. The LoginServer issues tokens after successful SRP authentication. WorldServers and SceneServers validate tokens cryptographically and check for revocation.

ICharacterAbilityService

Service interface for managing character abilities.

ICharacterAchievementService

Service interface for managing character achievements.

ICharacterArchetypeService

Service interface for managing character archetypes.

ICharacterAttributeService

Service interface for managing character attributes.

ICharacterBuffService

Service interface for managing character buffs.

ICharacterDialogueChoiceService

Service interface for per-character dialogue choice bitmasks.

ICharacterFactionService

Service interface for managing character factions.

ICharacterFriendService

Service interface for managing character friend relationships.

ICharacterGuildService

Service interface for managing a character's guild membership state.

ICharacterHotkeyService

Service interface for managing character hotkeys.

ICharacterItemCooldownService

Service interface for managing character item cooldowns.

ICharacterItemService

Service for a character's items across every container.

ICharacterKnownAbilityService

Service interface for managing a character's known abilities.

ICharacterMailService

Service interface for managing character mail in the database.

ICharacterPartyService

Service interface for managing a character's party membership state.

ICharacterPetAttributeService

Service interface for managing character pet attributes.

ICharacterPetBuffService

Service interface for managing character pet buffs.

ICharacterPetService

Service interface for managing a character's pet.

ICharacterQuestService

Service interface for managing character quests.

ICharacterService

Service interface for managing character entities in the database. Handles core character operations including creation, retrieval, updates, and deletion.

ICharacterSessionOwnershipService

Proves — inside an open unit of work — that the calling server is still entitled to write a character's state, and holds that entitlement still for the remainder of the transaction.

ICharacterSkillService

Service interface for managing character skills.

IChatService

Service interface for chat message operations. Provides async methods for persisting and fetching chat messages.

IConnectionTokenKeyService

Service interface for managing connection token HMAC keys. The IpFetchServer registers its signing key via UpsertAsync(string, byte[], CancellationToken); game servers (Login/World/Scene) fetch all active keys via FetchAllActiveAsync(CancellationToken) to verify stateless connection tokens without environment variable coordination.

ICurrencyLedgerService

Records completed currency movements.

IDeploymentSecretService

Service interface for managing deployment-global secrets. Servers load secrets from this table at startup instead of reading env files, eliminating the need to distribute secrets across machines.

IEmailQueueService

Service for the outbound email queue. Emails are enqueued by the application and delivered asynchronously by a background SMTP processor.

IGuildApplicationService

Service interface for the guild recruitment directory and its application queue.

IGuildLogService

Service interface for the append-only guild activity log.

IGuildRankService

Service interface for a guild's editable rank ladder.

IGuildService

Service interface for guild management operations. Provides async methods for guild creation, deletion, and retrieval.

IGuildUpdateService

Service interface for guild update timestamp tracking. Provides async methods for persisting, deleting, and fetching guild update records.

IKickRequestService

Service interface for kick request operations. Provides async methods for persisting, deleting, and fetching kick requests.

ILoginServerService

Service interface for login server registration and management operations. Provides async methods for server registration, heartbeat updates, and retrieval. Returns DatabaseResult for consistent, safe error handling with sanitized messages.

ILoginServerSigningKeyService

Service interface for managing per-LoginServer HMAC signing keys. The LoginServer inserts a fresh signing key on startup; WorldServers and SceneServers fetch the key by token-embedded key ID to validate auth tokens.

IPartyService

Service interface for party management operations. Provides async methods for party creation, deletion, and retrieval.

IPartyUpdateService

Service interface for party update timestamp tracking. Provides async methods for persisting, deleting, and fetching party update records.

ISceneServerService

Service interface for scene server registration and management operations. Provides async methods for server registration, heartbeat updates, and retrieval.

ISceneService

Service interface for scene instance lifecycle management operations. Provides async methods for scene loading, status updates, and retrieval. All methods return DatabaseResult or DatabaseResult<T> with comprehensive exception handling.

ITwoFactorRecoveryCodeService

Service interface for managing two-factor recovery codes. Recovery codes are one-time-use fallbacks when TOTP is unavailable. The server hashes codes before passing them to this layer.

IUnitOfWork

Represents a unit of work for coordinating multiple service calls into a single database transaction.

IUnitOfWorkService

Creates IUnitOfWork scopes to coordinate multiple service calls into a single explicit database transaction.

IWorldServerService

Service interface for world server registration and management operations. Provides async methods for server registration, heartbeat updates, and retrieval.