57 lines
2.2 KiB
C++
57 lines
2.2 KiB
C++
/*
|
||
* quiz.h — Класс модели данных
|
||
*
|
||
* Представляет одну запись о тесте/викторине, полученную с сервера.
|
||
* Поля напрямую соответствуют JSON-ключам из ответа REST API:
|
||
*
|
||
* {
|
||
* "id": 1,
|
||
* "title": "Математика 5 класс",
|
||
* "description": "Тест по базовой математике",
|
||
* "author": "Иванов И.И.",
|
||
* "created_at": "2026-04-02T11:20:40.123456Z",
|
||
* "time_limit": 40,
|
||
* "is_published": false
|
||
* }
|
||
*
|
||
* Этот класс — «правая сторона» адаптера: адаптер принимает
|
||
* на вход QJsonObject (сырой формат Qt) и заполняет объект Quiz
|
||
* (понятный формат нашего приложения).
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include <QString> // Qt-строка с поддержкой Unicode
|
||
#include <QDateTime> // дата и время с поддержкой ISO 8601
|
||
|
||
class Quiz
|
||
{
|
||
public:
|
||
/*
|
||
* Конструктор по умолчанию, сгенерированный компилятором.
|
||
* Числовые поля инициализированы прямо в объявлении (= 0 / = false),
|
||
* строки и даты инициализируются в пустое значение по умолчанию.
|
||
*/
|
||
Quiz() = default;
|
||
|
||
// Первичный ключ записи в базе данных сервера
|
||
int id = 0;
|
||
|
||
// Название теста, например "Математика 5 класс"
|
||
QString title;
|
||
|
||
// Подробное описание теста
|
||
QString description;
|
||
|
||
// Автор теста, например "Иванов И.И."
|
||
QString author;
|
||
|
||
// Временная метка создания записи (заполняется сервером автоматически)
|
||
QDateTime createdAt;
|
||
|
||
// Ограничение по времени прохождения в минутах
|
||
int timeLimit = 0;
|
||
|
||
// Признак публикации: true — тест виден пользователям
|
||
bool isPublished = false;
|
||
};
|