#pragma once #include "SwitchData.hpp" #include #include namespace app { class CallSwitchData : public gui::SwitchData { public: enum class Type { UNDEFINED, INCOMING_CALL, EXECUTE_CALL }; static const inline std::string descriptionStr = "CallSwitchData"; protected: Type type = Type::UNDEFINED; utils::PhoneNumber::View phoneNumber; public: CallSwitchData(const utils::PhoneNumber::View &phoneNumber, Type type = Type::UNDEFINED) : SwitchData(descriptionStr), type(type), phoneNumber(phoneNumber){}; const Type &getType() const { return type; }; const utils::PhoneNumber::View &getPhoneNumber() const { return phoneNumber; }; }; class EnterNumberData : public gui::SwitchData { std::string phoneNumber; public: static const inline std::string descriptionStr = "EnterNumberSwitchData"; EnterNumberData(const std::string &phoneNumber) : SwitchData(descriptionStr), phoneNumber(phoneNumber) {} const std::string &getPhoneNumber() const { return phoneNumber; } }; class IncomingCallData : public CallSwitchData { public: IncomingCallData(const utils::PhoneNumber::View &phoneNumber) : CallSwitchData(phoneNumber, CallSwitchData::Type::INCOMING_CALL){}; }; class ExecuteCallData : public CallSwitchData { public: ExecuteCallData(const utils::PhoneNumber::View &phoneNumber) : CallSwitchData(phoneNumber, app::CallSwitchData::Type::EXECUTE_CALL){}; }; } /* namespace app */