{{#each userImports as |userClass|}} {{#if userClass != className}} class {{className}}; {{/if}} {{/each}} class {{className}} { public: {{#if hasRequiredProperties}} {{className}}( {{#each properties as |p|}} {{#if p.isNotNullable}} {{p.typeNameWithQualifiers}} {{p.name}}{{#if p.isLastNonNullable}}{{else}},{{/if}} {{/if}} {{/each}} ); {{else}} {{className}}(); {{/if}} {{className}}(const {{className}} &other); /** * Replaces the data being hold by this class with that of the other. */ void replaceData({{className}} &other); static {{className}} fromJson(QJsonObject source); void setFromJson(QJsonObject source); QJsonObject toJson() const; // Properties {{#each properties as |p|}} {{#if p.description.length > 0}} /** * @brief {{p.description}} */ {{/if}} {{p.typeNameWithQualifiers}} {{p.name}}() const; {{#if p.description.length > 0}} /** * @brief {{p.description}} */ {{/if}} void set{{p.writeName}}({{p.typeNameWithQualifiers}} new{{p.writeName}}); {{#if p.isNullable}} bool {{p.name}}Null() const; void set{{p.writeName}}Null(); {{/if}} {{/each}} protected: {{#each properties as |p|}} {{#if p.defaultInitializer.length > 0}} {{p.typeNameWithQualifiers}} {{p.memberName}} = {{p.defaultInitializer}}; {{else}} {{p.typeNameWithQualifiers}} {{p.memberName}}; {{/if}} {{/each}} {{#if hasRequiredProperties}} private: // Private constructor which generates an invalid object, for use withing {{className}}::fromJson(); {{className}}(); {{/if}} }; } // NS DTO namespace Support { using {{className}} = Jellyfin::DTO::{{className}}; template <> {{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>); template<> QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>);