241-327_Deev_ASD/lab-3/quiz.h

57 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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;
};