mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-06-05 22:34:21 +00:00
- Implemented dashboard audit logging with InsertAuditLog, GetRecentAuditLogs, GetAuditLogsByIP, and CleanupOldAuditLogs methods. - Created dashboard configuration management with GetDashboardConfig and SetDashboardConfig methods. - Added new tables for dashboard_audit_log and dashboard_config in both MySQL and SQLite migrations. - Updated CMakeLists to include Crow and ASIO for dashboard server functionality. - Enhanced existing database classes to support new dashboard features, including character, play key, and property management. - Added new methods for retrieving and managing play keys, properties, and pet names. - Updated TestSQLDatabase to include stubs for new dashboard-related methods. - Modified shared and dashboard configuration files for new settings.
75 lines
2.4 KiB
C++
75 lines
2.4 KiB
C++
#ifndef __IPROPERTY__H__
|
|
#define __IPROPERTY__H__
|
|
|
|
#include <cstdint>
|
|
#include <optional>
|
|
|
|
enum ePropertySortType : int32_t;
|
|
|
|
class IProperty {
|
|
public:
|
|
struct Info {
|
|
std::string name;
|
|
std::string description;
|
|
std::string rejectionReason;
|
|
LWOOBJID id{};
|
|
LWOOBJID ownerId{};
|
|
LWOCLONEID cloneId{};
|
|
int32_t privacyOption{};
|
|
uint32_t modApproved{};
|
|
uint32_t lastUpdatedTime{};
|
|
uint32_t claimedTime{};
|
|
uint32_t reputation{};
|
|
float performanceCost{};
|
|
};
|
|
|
|
struct PropertyLookup {
|
|
uint32_t mapId{};
|
|
std::string searchString;
|
|
ePropertySortType sortChoice{};
|
|
LWOOBJID playerId{};
|
|
uint32_t numResults{};
|
|
uint32_t startIndex{};
|
|
uint32_t playerSort{};
|
|
};
|
|
|
|
struct PropertyEntranceResult {
|
|
int32_t totalEntriesMatchingQuery{};
|
|
// The entries that match the query. This should only contain up to 12 entries.
|
|
std::vector<IProperty::Info> entries;
|
|
};
|
|
|
|
// Get the property info for the given property id.
|
|
virtual std::optional<IProperty::Info> GetPropertyInfo(const LWOOBJID id) = 0;
|
|
|
|
// Get the property info for the given property id.
|
|
virtual std::optional<IProperty::Info> GetPropertyInfo(const LWOMAPID mapId, const LWOCLONEID cloneId) = 0;
|
|
|
|
// Get the properties for the given property lookup params.
|
|
// This is expected to return a result set of up to 12 properties
|
|
// so as not to transfer too much data at once.
|
|
virtual std::optional<IProperty::PropertyEntranceResult> GetProperties(const PropertyLookup& params) = 0;
|
|
|
|
// Update the property moderation info for the given property id.
|
|
virtual void UpdatePropertyModerationInfo(const IProperty::Info& info) = 0;
|
|
|
|
// Update the property details for the given property id.
|
|
virtual void UpdatePropertyDetails(const IProperty::Info& info) = 0;
|
|
|
|
// Update the last updated time for the given property id.
|
|
virtual void UpdateLastSave(const IProperty::Info& info) = 0;
|
|
|
|
// Update the property performance cost for the given property id.
|
|
virtual void UpdatePerformanceCost(const LWOZONEID& zoneId, const float performanceCost) = 0;
|
|
|
|
// Insert a new property into the database.
|
|
virtual void InsertNewProperty(const IProperty::Info& info, const uint32_t templateId, const LWOZONEID& zoneId) = 0;
|
|
|
|
// Dashboard methods
|
|
virtual std::vector<Info> GetAllProperties() = 0;
|
|
virtual std::vector<Info> GetPropertiesByApprovalStatus(uint32_t approved) = 0;
|
|
virtual uint32_t GetPropertyCount() = 0;
|
|
virtual uint32_t GetUnapprovedPropertyCount() = 0;
|
|
};
|
|
#endif //!__IPROPERTY__H__
|