mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-24 14:33:34 +00:00
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
|
#ifndef __IPROPERTY__H__
|
||
|
#define __IPROPERTY__H__
|
||
|
|
||
|
#include <cstdint>
|
||
|
#include <optional>
|
||
|
|
||
|
class IProperty {
|
||
|
public:
|
||
|
struct Info {
|
||
|
std::string name;
|
||
|
std::string description;
|
||
|
std::string rejectionReason;
|
||
|
LWOOBJID id{};
|
||
|
uint32_t ownerId{};
|
||
|
LWOCLONEID cloneId{};
|
||
|
int32_t privacyOption{};
|
||
|
uint32_t modApproved{};
|
||
|
uint32_t lastUpdatedTime{};
|
||
|
uint32_t claimedTime{};
|
||
|
uint32_t reputation{};
|
||
|
};
|
||
|
|
||
|
// Get the property info for the given property id.
|
||
|
virtual std::optional<IProperty::Info> GetPropertyInfo(const LWOMAPID mapId, const LWOCLONEID cloneId) = 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 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;
|
||
|
};
|
||
|
#endif //!__IPROPERTY__H__
|