Source code for mud_server.db.types

"""Shared DB-layer dataclasses for repository contracts."""

from __future__ import annotations

from dataclasses import dataclass


[docs] @dataclass(slots=True) class WorldAccessDecision: """ Policy resolution result for account access and character creation in a world. Attributes: world_id: Target world identifier. can_access: True when the account may enter/select this world. can_create: True when the account may create another character there. access_mode: Effective world creation mode (open/invite). naming_mode: Effective naming mode (generated/manual). slot_limit_per_account: Max characters allowed for the account in this world. current_character_count: Existing characters owned by the account in this world. has_permission_grant: True when a world_permissions invite/grant exists. has_existing_character: True when the account already owns a character there. reason: Machine-friendly reason key for denials (for API/UI messaging). """ world_id: str can_access: bool can_create: bool access_mode: str naming_mode: str slot_limit_per_account: int current_character_count: int has_permission_grant: bool has_existing_character: bool reason: str
[docs] @dataclass(slots=True) class AxisRegistrySeedStats: """ Summary of axis registry seeding work performed. Attributes: axes_upserted: Number of axis rows inserted or updated. axis_values_inserted: Number of axis_value rows inserted. axes_missing_thresholds: Number of axes that had no thresholds entry. axis_values_skipped: Number of axis_value rows skipped due to missing data. """ axes_upserted: int axis_values_inserted: int axes_missing_thresholds: int axis_values_skipped: int