/*
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*     Customised contact model default template.
*     Compilation of this file overwrites z:\system\data\cntmodel.rsc which is
*     initially produced by building cntmodel (Contacts Model).
*
*/


// INCLUDES
#include <badef.rh>
#include <cntdef.hrh>
#include <cntmodel.rh>
#include <PbkConfig.hrh>
#include "PbkEng.hrh"
#include <phonebook.loc>


// MACROS

// From uikon.hrh
#define EEikResourceSignatureValue 4


//  RESOURCE DEFINITIONS 

// From uikon.rh - avoids PbkEng requiring Uikon
//
STRUCT RSS_SIGNATURE
    {
    LONG signature=EEikResourceSignatureValue;
    SRLINK self;
    }

// Resource signature
RESOURCE RSS_SIGNATURE { }


/**
 * Phonebook's default contact card template. This resource is read by cntmodel
 * when it creates a new database.
 *
 * @see FIELD
 * @see CContactDatabase#CreateTemplateAndPrefsL()
 */
RESOURCE ARRAY r_cntui_new_field_defns
    {
    items=
        {
// home or personal jobbies
        FIELD	// Name: last name
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldFamilyNameValue;
			vCardMapping = KIntContactFieldVCardMapUnusedN;
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_last_name;
			},
        FIELD	// Name: first name
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldGivenNameValue;
			vCardMapping = KIntContactFieldVCardMapUnusedN;
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_first_name;
			},
        FIELD	// Phone Number (Home)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Ordering differs from contact model default template
			    MAPPING { mapping=KIntContactFieldVCardMapVOICE; },
                MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category = EContactCategoryHome;
            fieldName = qtn_phob_lbl_number_home;
			},
        FIELD	// Phone Number Mobile  (Home)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Ordering differs from contact model default template
			    MAPPING { mapping=KIntContactFieldVCardMapCELL; },
                MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_number_mobile_home;
			},
        FIELD	// Fax Number (Home)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldFaxValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Ordering differs from contact model default template
			    MAPPING { mapping=KIntContactFieldVCardMapFAX; },
                MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_fax_home;
			},
        FIELD	// Email Address (Home)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldEMailValue;
			vCardMapping = KIntContactFieldVCardMapEMAILINTERNET;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
                };
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_email_home;
			},
        FIELD	// URL (Home)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldUrlValue;
			vCardMapping = KIntContactFieldVCardMapURL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_url_home;
			},
		FIELD	// Label Address (Home)
			{
            // NOTE: This data differs from contact model default template
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldAddressValue;
			vCardMapping = KIntContactFieldVCardMapLABEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category = EContactCategoryHome;
			fieldName = qtn_phob_lbl_address_home;
			},
		FIELD   // P.O.box (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostOfficeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTOFFICE;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_pobox_home; 
			},
		FIELD   // Extension address (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldExtendedAddressValue;
			vCardMapping=KIntContactFieldVCardMapEXTENDEDADR;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_extencion_home;
			},
		FIELD   // Street (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldAddressValue;
			vCardMapping=KIntContactFieldVCardMapADR;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_street_home;
		    },
        FIELD   // Postal code (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostCodeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTCODE;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_postal_code_home;
            },
        FIELD   // City (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldLocalityValue;
			vCardMapping=KIntContactFieldVCardMapLOCALITY;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_city_home;
			},
		FIELD   // State (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldRegionValue;
			vCardMapping=KIntContactFieldVCardMapREGION;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_state_home;
			},
		FIELD   // Country (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldCountryValue;
			vCardMapping=KIntContactFieldVCardMapCOUNTRY;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_country_home;
			},


// work related
        FIELD	// Job Title
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldJobTitleValue;
			vCardMapping = KIntContactFieldVCardMapTITLE;
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_job_title;
			},
        FIELD	// Company Name
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldCompanyNameValue;
			vCardMapping = KIntContactFieldVCardMapORG;
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_company_name;
			},
        FIELD	// Phone Number (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Ordering differs from contact model default template
			    MAPPING { mapping=KIntContactFieldVCardMapVOICE; },
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_number_work;
			},
        FIELD	// Phone Number Mobile  (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Contact model default template has mapping: WORK,VOICE,CELL
			    MAPPING { mapping=KIntContactFieldVCardMapCELL; },
                MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_number_mobile_work;
			},
        FIELD	// Fax Number (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldFaxValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
                // NOTE: Ordering differs from contact model default template
			    MAPPING { mapping=KIntContactFieldVCardMapFAX; },
                MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_fax_work;
			},
        FIELD	// Email Address (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldEMailValue;
			vCardMapping = KIntContactFieldVCardMapEMAILINTERNET;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
                };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_email_work;
			},
        FIELD	// URL (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldUrlValue;
			vCardMapping = KIntContactFieldVCardMapURL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_url_work;
			},
		FIELD	// Label Address (Work)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldAddressValue;
			vCardMapping = KIntContactFieldVCardMapLABEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category = EContactCategoryWork;
			fieldName = qtn_phob_lbl_address_work;
			},
		FIELD   // P.O.box (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostOfficeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTOFFICE;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_pobox_work; 
			},
		FIELD   // Extension address (work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldExtendedAddressValue;
			vCardMapping=KIntContactFieldVCardMapEXTENDEDADR;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_extencion_work;
			},
		FIELD   // Street (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldAddressValue;
			vCardMapping=KIntContactFieldVCardMapADR;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_street_work;
            },
		FIELD   // Postal code (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostCodeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTCODE;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_postal_code_work;
            },
        FIELD   // City (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldLocalityValue;
			vCardMapping=KIntContactFieldVCardMapLOCALITY;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_city_work;
			},
		FIELD   // State (work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldRegionValue;
			vCardMapping=KIntContactFieldVCardMapREGION;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_state_work;
			},
		FIELD   // Country (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldCountryValue;
			vCardMapping=KIntContactFieldVCardMapCOUNTRY;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_country_work;
			},

// general
        FIELD	// Phone Number (general)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapVOICE; }
			    };
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_number_standard;
            },
        FIELD	// Phone Number Mobile (general)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapCELL; }
			    };
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_number_mobile;
			},
        // NOTE: Contact model default template has only HOME and WORK pager
        FIELD	// Pager Number
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPhoneNumberValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapPAGER; }
			    };
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_pager;
			},
        FIELD	// Fax Number (general)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldFaxValue;
			vCardMapping = KIntContactFieldVCardMapTEL;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapFAX; }
			    };
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_fax;
			},
        
        FIELD	// Email Address (general)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldEMailValue;
			vCardMapping = KIntContactFieldVCardMapEMAILINTERNET;
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_email;
			},
        FIELD	// URL (general)
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldUrlValue;
			vCardMapping = KIntContactFieldVCardMapURL;
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_url;
			},
		FIELD	// Label Address (general)
			{
            // NOTE: This data differs from contact model default template
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldAddressValue;
			vCardMapping = KIntContactFieldVCardMapLABEL;
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_address;
			},
		FIELD   // P.O.box (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostOfficeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTOFFICE;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_pobox; 
			},
		FIELD   // Extension address (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldExtendedAddressValue;
			vCardMapping=KIntContactFieldVCardMapEXTENDEDADR;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_extencion;
			},
		FIELD   // Street (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldAddressValue;
			vCardMapping=KIntContactFieldVCardMapADR;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_street;
		    },
        FIELD   // Postal code (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldPostCodeValue;
			vCardMapping=KIntContactFieldVCardMapPOSTCODE;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_postal_code;
            },
        FIELD   // City (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldLocalityValue;
			vCardMapping=KIntContactFieldVCardMapLOCALITY;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_city;
			},
		FIELD   // State (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldRegionValue;
			vCardMapping=KIntContactFieldVCardMapREGION;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_state;
			},
		FIELD   // Country (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldCountryValue;
			vCardMapping=KIntContactFieldVCardMapCOUNTRY;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_country;
			},
        // NOTE: There is no DTMF field in the contact model default template
        FIELD	// DTMF String
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldDTMFValue;
            // NOTE: DTMF is not imported or exported in vCards
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryOther;
			fieldName = qtn_phob_lbl_dtmf;
            // NOTE: DTMF is not imported or exported with PC Sync
			flags=EContactFieldFlagDisabled;
			},
		FIELD	// Date
			{
			fieldStorageType = KStorageTypeDateTime;
			contactFieldType = KUidContactFieldBirthdayValue;
			vCardMapping = KIntContactFieldVCardMapBDAY;
			category = EContactCategoryOther;
			fieldName = qtn_phob_lbl_date;
			},
        FIELD	// Note
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldNoteValue;
			vCardMapping = KIntContactFieldVCardMapNOTE;
			category = EContactCategoryOther;
			fieldName = qtn_phob_lbl_note;
			},
        // NOTE: There is no corresponding field in the contact model default template
		FIELD	// Picture
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldPictureValue;
            // NOTE: Picture is not imported or exported in vCards
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryNone;
            // NOTE: Picture is not imported or exported with PC Sync
			flags=EContactFieldFlagDisabled;
			},
        // NOTE: Thumbnail is much like PHOTO in contact model default template
		FIELD	// Thumbnail Image
			{
			fieldStorageType = KPbkThumbnailFieldStorageType;
			contactFieldType = KUidContactFieldPictureValue;
			vCardMapping = KIntContactFieldVCardMapPHOTO;
			category = EContactCategoryNone;
			},
        // NOTE: There is no corresponding field in the contact model default template
		FIELD	// Personal Ringing Tone Indication
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldRingToneValue;
            // NOTE: Ringing tone is not imported or exported in vCards
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryNone;
			fieldName = qtn_phob_lbl_tone;
            // NOTE: Ringing tone is not imported or exported with PC Sync
			flags=EContactFieldFlagDisabled;
			},
        // NOTE: There is no corresponding field in the contact model default template
		FIELD	// Location privacy indicator
			{
			fieldStorageType = KStorageTypeText;
			contactFieldType = KPbkUidContactFieldLocationPrivValue;
            // NOTE: Locationing privacy is not imported or exported in vCards
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryNone;
            // NOTE: Locationing privacy is not imported or exported with PC Sync
            // NOTE: The First(1) custom field. Next field needs to be added after this field
            // NOTE: Custom filter flags are index/order dependent!
			flags=KIntFieldFlagFilterable1;//EContactFieldFlagFilterable;
			},
    // NOTE: There is no corresponding field in the contact model default template 
    FIELD	// Top Contact Indicator
			{
			fieldStorageType = KStorageTypeText; // text type to store the order of top contacts
			contactFieldType = KUidContactFieldTopContactValue;
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryNone; // To be set to some other val ?
			fieldName = "Top Contact"; // debugging purposes, no need to localize		
      // NOTE: Top Contact is filterable	
			flags=KIntFieldFlagFilterable2; 
			},			
    FIELD	// IMPP
            {
            fieldStorageType = KStorageTypeText;
			contactFieldType = KUidContactFieldIMPPValue;
			vCardMapping = KIntContactFieldVCardMapUnknown;
			category = EContactCategoryNone; // TODO: To be set to some other val ?
			},			
		FIELD   // Geo (Home)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldGEOValue;
			vCardMapping = KIntContactFieldVCardMapGEO;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapHOME; }
			    };
			category=EContactCategoryHome;
			fieldName=qtn_phob_lbl_geo_home;
			},
		FIELD   // Geo (Work)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldGEOValue;
			vCardMapping = KIntContactFieldVCardMapGEO;
			extraMapping=
			    {
			    MAPPING { mapping=KIntContactFieldVCardMapWORK; }
			    };
			category=EContactCategoryWork;
			fieldName=qtn_phob_lbl_geo_work;
			},
		FIELD   // Geo (general)
			{
			fieldStorageType=KStorageTypeText;
			contactFieldType=KUidContactFieldGEOValue;
			vCardMapping = KIntContactFieldVCardMapGEO;
			category=EContactCategoryNone;
			fieldName=qtn_phob_lbl_geo;
			}
        };
    }


// End of File
