/* * Squawk messenger. * Copyright (C) 2019 Yury Gubich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SHARED_VCARD_H #define SHARED_VCARD_H #include #include #include #include "enums.h" namespace Shared { class VCard { class Contact { public: enum Role { none, home, work }; static const std::deque roleNames; Contact(Role p_role = none, bool p_prefered = false); Role role; bool prefered; }; public: class Email : public Contact { public: Email(const QString& address, Role p_role = none, bool p_prefered = false); QString address; }; class Phone : public Contact { public: enum Type { fax, pager, voice, cell, video, modem, other }; static const std::deque typeNames; Phone(const QString& number, Type p_type = voice, Role p_role = none, bool p_prefered = false); QString number; Type type; }; class Address : public Contact { public: Address( const QString& zCode = "", const QString& cntry = "", const QString& rgn = "", const QString& lclty = "", const QString& strt = "", const QString& ext = "", Role p_role = none, bool p_prefered = false ); QString zipCode; QString country; QString region; QString locality; QString street; QString external; }; VCard(); VCard(const QDateTime& creationTime); QString getFullName() const; void setFullName(const QString& name); QString getFirstName() const; void setFirstName(const QString& first); QString getMiddleName() const; void setMiddleName(const QString& middle); QString getLastName() const; void setLastName(const QString& last); QString getNickName() const; void setNickName(const QString& nick); QString getDescription() const; void setDescription(const QString& descr); QString getUrl() const; void setUrl(const QString& u); QDate getBirthday() const; void setBirthday(const QDate& date); Avatar getAvatarType() const; void setAvatarType(Avatar type); QString getAvatarPath() const; void setAvatarPath(const QString& path); QString getOrgName() const; void setOrgName(const QString& name); QString getOrgUnit() const; void setOrgUnit(const QString& unit); QString getOrgRole() const; void setOrgRole(const QString& role); QString getOrgTitle() const; void setOrgTitle(const QString& title); QDateTime getReceivingTime() const; std::deque& getEmails(); const std::deque& getEmails() const; std::deque& getPhones(); const std::deque& getPhones() const; std::deque
& getAddresses(); const std::deque
& getAddresses() const; private: QString fullName; QString firstName; QString middleName; QString lastName; QString nickName; QString description; QString url; QString organizationName; QString organizationUnit; QString organizationRole; QString jobTitle; QDate birthday; Avatar photoType; QString photoPath; QDateTime receivingTime; std::deque emails; std::deque phones; std::deque
addresses; }; } #endif // SHARED_VCARD_H