// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!

\page vcardsupport.html

\target vcardsupport
\title Supported vCard Features

\section1 Properties

The following table lists the vCard properties that the \l{Qt Versit}
module supports.

\table
  \header
    \li Versit Property
    \li QContactDetail
  \row
    \li ADR
    \li QContactAddress
  \row
    \li BDAY
    \li QContactBirthday
  \row
    \li CATEGORIES, X-CATEGORIES*
    \li QContactTag
  \row
    \li FN
    \li QContactName (CustomLabel field)
  \row
    \li GEO
    \li QContactGeoLocation
  \row
    \li EMAIL
    \li QContactEmailAddress
  \row
    \li IMPP, X-IMPP*
    \li QContactOnlineAccount (SubTypeImpp)
  \row
    \li LOGO
    \li QContactOrganization (LogoUrl field)
  \row
    \li N
    \li QContactName
  \row
    \li NICKNAME, X-NICKNAME*, X-EPOCSECONDNAME*
    \li QContactNickname
  \row
    \li NOTE
    \li QContactNote
  \row
    \li ORG
    \li QContactOrganization (Name field)
  \row
    \li PHOTO
    \li QContactAvatar for URLs. No support by default for base-64 encoded images.
  \row
    \li REV
    \li QContactTimestamp
  \row
    \li ROLE
    \li QContactOrganization (Role field)
  \row
    \li SOUND
    \li QContactRingtone
  \row
    \li TEL
    \li QContactPhoneNumber
  \row
    \li TITLE
    \li QContactOrganization (Title field)
  \row
    \li UID
    \li QContactGuid
  \row
    \li URL
    \li QContactUrl
  \row
    \li X-ANNIVERSARY
    \li QContactAnniversary
  \row
    \li X-ASSISTANT
    \li QContactOrganization (Assistant field)
  \row
    \li X-ASSISTANT-TEL
    \li QContactPhoneNumber (SubTypeAssistant)
  \row
    \li X-CHILDREN
    \li QContactFamily (Children field)
  \row
    \li X-QTPROJECT-FAVORITE
    \li QContactFavorite
  \row
    \li X-GENDER
    \li QContactGender
  \row
    \li X-JABBER
    \li QContactOnlineAccount (SubTypeImpp)
  \row
    \li X-QTPROJECT-EXTENDED-DETAIL**
    \li QContactExtendedDetail
  \row
    \li X-SIP
    \li QContactOnlineAccount
  \row
    \li X-SPOUSE
    \li QContactFamily (Spouse field)
\endtable

* These are understood by the importer, but are not generated by the exporter.

** Extended detail data is serialized in JSON format. Since JSON natively supports
   booleans, (floating-point) numbers/doubles, strings, arrays/lists and objects/maps,
   other data types are converted to these when exporting. Importing the detail
   will generate an extended detail of one of the supported types listed above.
   See QJsonValue::fromVariant() in QtCore for the list of type conversions.

\section1 Parameters

The Versit module supports the following vCard parameter:
\list
  \li ENCODING (for base64 or quoted-printable values)
  \li CHARSET (text character set for a specific property)
  \li VALUE (for LOGO, SOUND and PHOTO to specify whether the resource is external or embedded)
  \li TYPE (see below)
\endlist

The following table lists the values that are supported for the TYPE parameter:

\table
  \header
    \li Value of TYPE parameter
    \li Value of QContactDetail Context/SubType
  \row
    \li HOME
    \li QContactDetail::ContextHome
  \row
    \li WORK
    \li QContactDetail::ContextWork
  \row
    \li DOM
    \li QContactAddress::SubTypeDomestic
  \row
    \li INTL
    \li QContactAddress::SubTypeInternational
  \row
    \li POSTAL
    \li QContactAddress::SubTypePostal
  \row
    \li PARCEL
    \li QContactAddress::SubTypeParcel
  \row
    \li VOICE
    \li QContactPhoneNumber::SubTypeVoice
  \row
    \li CELL
    \li QContactPhoneNumber::SubTypeMobile
  \row
    \li MODEM
    \li QContactPhoneNumber::SubTypeModem
  \row
    \li CAR
    \li QContactPhoneNumber::SubTypeCar
  \row
    \li VIDEO
    \li QContactPhoneNumber::SubTypeVideo
  \row
    \li FAX
    \li QContactPhoneNumber::SubTypeFax
  \row
    \li BBS
    \li QContactPhoneNumber::SubTypeBulletinBoardSystem
  \row
    \li PAGER
    \li QContactPhoneNumber::SubTypePager
  \row
    \li ISDN
    \li QContactPhoneNumber::SubTypeLandline
  \row
    \li SWIS
    \li QContactOnlineAccount::SubTypeVideoShare
  \row
    \li VOIP
    \li QContactOnlineAccount::SubTypeSipVoip
\endtable

PREF is partially supported.  If a property has the parameter TYPE set to PREF, the QContactDetail
that it generates is placed at the front of the list saved to the resultant QContact.  This has the
effect that calling QContact::detail() will return it in preference over other details.  However,
the existence of the PREF parameter is not preserved, so it won't appear when exporting the contact
back to vCard.

*/
