feat(db): zone edit locks and zone editors

Tables for the one account holding a zone's lock and for each zone's assigned
editors, on MySQL and SQLite, with the interface and the test database.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-11-10 18:22:03 -06:00
parent 3072715dc3
commit 0e57b95229
13 changed files with 274 additions and 1 deletions

View File

@@ -287,6 +287,15 @@ public:
void SetPropertyRent(LWOOBJID propertyId, int64_t amount, int64_t due) override;
void SetPropertyPrivacy(LWOOBJID propertyId, int32_t privacyOption) override;
// IZoneEditing
std::optional<ZoneLock> GetZoneLock(uint32_t zoneId) override;
std::vector<ZoneLock> GetZoneLocks() override;
bool TakeZoneLock(uint32_t zoneId, uint32_t accountId, int64_t time) override;
bool ReleaseZoneLock(uint32_t zoneId) override;
std::vector<ZoneEditor> GetZoneEditors(uint32_t zoneId) override;
bool IsZoneEditor(uint32_t zoneId, uint32_t accountId) override;
void AddZoneEditor(const ZoneEditor& editor) override;
bool RemoveZoneEditor(uint32_t zoneId, uint32_t accountId) override;
// IContraband
std::vector<ContrabandItem> GetContrabandItems() override;
void SetContrabandItem(const ContrabandItem& item) override;