Program Listing for File Ticket.h

Return to documentation for file (axr.sdk/models/Ticket.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
//
// NOTE: This file was auto generated by the AcceleratXR code generator.
// https://gitlab.com/AcceleratXR/Core/code_generator.git
#pragma once

#include "axr.sdk/EntityBase.h"
#include "axr.sdk/StringEnum.h"
#include "axr.sdk/models/Criteria.h"
#include "axr.sdk/models/Statistic.h"


#include <cpprest/details/basic_types.h>
#include <vector>

namespace axr {
namespace sdk {
namespace models {

class Ticket : public EntityBase
{
public:
    class Status : public StringEnum<Status>
    {
    public:
        static const Status* INVALID;
        static const Status* INITIALIZING;
        static const Status* SEARCHING;
        static const Status* MATCH_FOUND;

    private:
        Status(const utility::char_t* value)
            : StringEnum(value)
        {
        }
    };

    class TeamSize : public Object, public std::enable_shared_from_this<TeamSize>
    {
    public:
        TeamSize(int64_t value);
        TeamSize(int64_t min, int64_t max);
        TeamSize(const Object& value) : Object(value) {}

        int64_t GetMax();
        TeamSize& SetMax(int64_t value);

        int64_t GetMin();
        TeamSize& SetMin(int64_t value);
    };

    Ticket() {}
    Ticket(const Ticket& value) : EntityBase(value) {}
    Ticket(Ticket&& value) : EntityBase(value) {}
    virtual ~Ticket() {}

    // Object overrides

    virtual Ticket& SetProperties(const std::map<utility::string_t, Variant>& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual Ticket& SetProperties(std::map<utility::string_t, Variant>&& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual Ticket& SetProperty(const utility::char_t* name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual Ticket& SetProperty(const utility::string_t& name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual Ticket& SetRemoteUrl(const utility::string_t& url) override
    {
        Object::SetRemoteUrl(url);
        return *this;
    }

    // EntityBase overrides

    virtual Ticket& SetUid(const utility::string_t& value) override
    {
        EntityBase::SetUid(value);
        return *this;
    }

    virtual Ticket& SetDateCreated(const datetime& value) override
    {
        EntityBase::SetDateCreated(value);
        return *this;
    }

    virtual Ticket& SetDateModified(const datetime& value) override
    {
        EntityBase::SetDateModified(value);
        return *this;
    }

    virtual Ticket& SetVersion(const uint64_t value) override
    {
        EntityBase::SetVersion(value);
        return *this;
    }

    static const utility::char_t* ClassName()
    {
        return _XPLATSTR("axr::sdk::models::Ticket");
    }

    void Validate() override;

    // Ticket members

    std::vector<std::shared_ptr<Criteria>> GetCriteria() const;

    Ticket& SetCriteria(const std::vector<std::shared_ptr<Criteria>> value);

    bool IsDedicatedServer() const;

    Ticket& SetDedicatedServer(bool value);

    utility::string_t GetHostUid() const;

    Ticket& SetHostUid(const utility::string_t& value);

    std::shared_ptr<TeamSize> GetTeamSize() const;

    Ticket& SetTeamSize(std::shared_ptr<Ticket::TeamSize> value);

    Ticket& SetTeamSize(int64_t value);

    Ticket& SetTeamSize(int64_t min, int64_t max);

    int64_t GetNumTeams() const;

    Ticket& SetNumTeams(const int64_t value);

    int64_t GetNumUsers() const;

    Ticket& SetNumUsers(const int64_t value);

    utility::string_t GetSessionUid() const;
#ifdef AXR_COMPILE_SERVER
    Ticket& SetSessionUid(const utility::string_t& value);
#endif // AXR_COMPILE_SERVER
    std::vector<std::shared_ptr<Statistic>> GetStatistics() const;

    Ticket& SetStatistics(const std::vector<std::shared_ptr<Statistic>> value);

    const Status* GetStatus() const;
#ifdef AXR_COMPILE_SERVER
    Ticket& SetStatus(const Status* value);
#endif // AXR_COMPILE_SERVER
    std::vector<utility::string_t> GetUsers() const;

    Ticket& SetUsers(const std::vector<utility::string_t> value);
};

} // namespace models
} // namespace axr
} // namespace sdk