const CREATE_SHARED_SCHEMA_SQL: &str = "-- This Source Code Form is subject to the terms of the Mozilla Public\n-- License, v. 2.0. If a copy of the MPL was not distributed with this\n-- file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\nCREATE TABLE IF NOT EXISTS addresses_data (\n guid TEXT NOT NULL PRIMARY KEY,\n given_name TEXT NOT NULL,\n additional_name TEXT NOT NULL,\n family_name TEXT NOT NULL,\n organization TEXT NOT NULL, -- Company\n street_address TEXT NOT NULL, -- (Multiline)\n address_level3 TEXT NOT NULL, -- Suburb/Sublocality\n address_level2 TEXT NOT NULL, -- City/Town\n address_level1 TEXT NOT NULL, -- Province (Standardized code if possible)\n postal_code TEXT NOT NULL,\n country TEXT NOT NULL, -- ISO 3166\n tel TEXT NOT NULL, -- Stored in E.164 format\n email TEXT NOT NULL,\n\n time_created INTEGER NOT NULL,\n time_last_used INTEGER,\n time_last_modified INTEGER NOT NULL,\n times_used INTEGER NOT NULL DEFAULT 0,\n\n sync_change_counter INTEGER NOT NULL DEFAULT 1\n);\n\nCREATE TABLE IF NOT EXISTS addresses_mirror (\n guid TEXT NOT NULL PRIMARY KEY,\n given_name TEXT NOT NULL,\n additional_name TEXT NOT NULL,\n family_name TEXT NOT NULL,\n organization TEXT NOT NULL, -- Company\n street_address TEXT NOT NULL, -- (Multiline)\n address_level3 TEXT NOT NULL, -- Suburb/Sublocality\n address_level2 TEXT NOT NULL, -- City/Town\n address_level1 TEXT NOT NULL, -- Province (Standardized code if possible)\n postal_code TEXT NOT NULL,\n country TEXT NOT NULL, -- ISO 3166\n tel TEXT NOT NULL, -- Stored in E.164 format\n email TEXT NOT NULL,\n\n time_created INTEGER NOT NULL,\n time_last_used INTEGER,\n time_last_modified INTEGER NOT NULL,\n times_used INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS addresses_tombstones (\n guid TEXT PRIMARY KEY,\n time_deleted INTEGER NOT NULL\n) WITHOUT ROWID;\n\n-- XXX There are still questions around how we implement the necessary security model for credit cards, specifically\n-- whether the `cc_number` and/or other details should be encrypted or stored as plain text. Currently, we are storing\n-- them as plain text.\nCREATE TABLE IF NOT EXISTS credit_cards_data (\n guid TEXT NOT NULL PRIMARY KEY,\n cc_name TEXT NOT NULL, -- full name\n cc_number TEXT NOT NULL, -- TODO: consider storing this field as a hash\n cc_exp_month INTEGER,\n cc_exp_year INTEGER,\n cc_type TEXT NOT NULL,\n -- cc_exp TEXT NOT NULL, -- text format of the expiration date e.g. \"[cc_exp_year]-[cc_exp_month]\"\n\n time_created INTEGER NOT NULL,\n time_last_used INTEGER,\n time_last_modified INTEGER NOT NULL,\n times_used INTEGER NOT NULL DEFAULT 0,\n\n /* Same \"sync change counter\" strategy used by other components. */\n sync_change_counter INTEGER NOT NULL DEFAULT 1\n);\n\nCREATE TABLE IF NOT EXISTS credit_cards_mirror (\n guid TEXT NOT NULL PRIMARY KEY,\n cc_name TEXT NOT NULL, -- full name\n cc_number TEXT NOT NULL,\n cc_exp_month INTEGER,\n cc_exp_year INTEGER,\n cc_type TEXT NOT NULL,\n -- cc_exp TEXT NOT NULL, -- text format of the expiration date e.g. \"[cc_exp_year]-[cc_exp_month]\"\n\n time_created INTEGER NOT NULL,\n time_last_used INTEGER,\n time_last_modified INTEGER NOT NULL,\n times_used INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS credit_cards_tombstones (\n guid TEXT PRIMARY KEY,\n time_deleted INTEGER NOT NULL\n) WITHOUT ROWID;\n";