Add docs for user-profession wrapper

This commit is contained in:
E. Kozlovskaya 2021-01-05 21:14:35 +07:00
parent f638e1dbc7
commit 3aeccd111d

View file

@ -5,25 +5,87 @@
#include "profession.h"
typedef quint8 ProfRank;
typedef quint8 ProfRank; //< Тип для разряда владельца профессии
/**
* @brief Класс-обёртка сущности профессии
*
* Используется для хранения соответствия между пользователем, его профессией и разрядом
*/
class UserProfession {
private:
//! Уникальный идентификатор профессии
PID mProfession;
//! Дата получения профессии пользователем
QDate mAcquired;
//! Разряд профессии пользователя
ProfRank mRank;
public:
/**
* @brief Стандартный конструктор объекта класса
*
*/
UserProfession() = default;
/**
* @brief Конструктор объекта пользователя из \param pid профессии и разряда
*
* @param pid уникальный идентификатор профессии
* @param rank разряд профессии пользоваетля
*/
UserProfession(PID pid, ProfRank rank);
/**
* @brief Возвращает идентификатор соотносимой професии
*
* @return PID уникальный идентификатор професии
*/
PID getProfession() const;
/**
* @brief Возвращает дату получения профессии
*
* @return QDate дата получения професии
*/
QDate getAcquiredDate() const;
/**
* @brief Возвращает разряд пользователя
*
* @return ProfRank разряд пользователя
*/
ProfRank getRank() const;
/**
* @brief Устанавливает разряд данной профессии пользователя
*
* @param newRank новый разряд пользователя
* @return true успех
* @return false не успех (значение \param newRank < 1)
*/
bool setRank(quint8 newRank);
/**
* @brief Определения оператора сравнения для класса
*
* @param l левый операнд
* @param r правый операнд
* @return true объекты идентичны
* @return false объекты отличаются
*/
friend bool operator==(const UserProfession &l, const UserProfession &r);
/**
* @brief Определение оператора ввода в поток
*
* @param stream поток
* @param prof объект класса
* @return QDataStream& ссылка на поток
*/
friend QDataStream& operator<<(QDataStream &stream, const UserProfession &up);
/**
* @brief Определение оператора ввода из потока
*
* @param stream поток
* @param prof объект класса
* @return QDataStream& ссылка на поток
*/
friend QDataStream& operator>>(QDataStream &stream, UserProfession &up);
};