CREATE TABLE SchemaVersionTable (version INTEGER NOT NULL DEFAULT 0)

INSERT INTO SchemaVersionTable (version) VALUES (22)

CREATE TABLE ResourceTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                            name TEXT UNIQUE NOT NULL,
                            isVirtual BOOL DEFAULT false)

INSERT INTO ResourceTable (name,isVirtual) VALUES ('akonadi_search_resource',1)

CREATE TABLE CollectionTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                              remoteId TEXT,
                              remoteRevision TEXT,
                              name TEXT NOT NULL,
                              parentId BIGINT,
                              resourceId BIGINT NOT NULL,
                              subscribed BOOL NOT NULL DEFAULT true,
                              cachePolicyInherit BOOL NOT NULL DEFAULT true,
                              cachePolicyCheckInterval INTEGER NOT NULL DEFAULT -1,
                              cachePolicyCacheTimeout INTEGER NOT NULL DEFAULT -1,
                              cachePolicySyncOnDemand BOOL NOT NULL DEFAULT false,
                              cachePolicyLocalParts TEXT,
                              queryString TEXT,
                              queryLanguage TEXT)

CREATE UNIQUE INDEX CollectionTable_parentAndNameIndex ON CollectionTable (parentId,name)

INSERT INTO CollectionTable (resourceId,name,parentId) VALUES (1,'Search',NULL)

CREATE TABLE MimeTypeTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                            name TEXT UNIQUE NOT NULL)

INSERT INTO MimeTypeTable (name) VALUES ('application/octet-stream')

INSERT INTO MimeTypeTable (name) VALUES ('message/rfc822')

INSERT INTO MimeTypeTable (name) VALUES ('text/calendar')

INSERT INTO MimeTypeTable (name) VALUES ('text/vcard')

INSERT INTO MimeTypeTable (name) VALUES ('inode/directory')

CREATE TABLE PimItemTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                           rev INTEGER NOT NULL DEFAULT 0,
                           remoteId TEXT,
                           remoteRevision TEXT,
                           collectionId BIGINT,
                           mimeTypeId BIGINT,
                           datetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                           atime TIMESTAMP,
                           dirty BOOL,
                           size BIGINT NOT NULL DEFAULT 0)

CREATE INDEX PimItemTable_collectionIndex ON PimItemTable (collectionId)

CREATE TABLE FlagTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                        name TEXT UNIQUE NOT NULL)

INSERT INTO FlagTable (name) VALUES ('important')

INSERT INTO FlagTable (name) VALUES ('has_attachment')

INSERT INTO FlagTable (name) VALUES ('spam')

INSERT INTO FlagTable (name) VALUES ('\ANSWERED')

INSERT INTO FlagTable (name) VALUES ('\FLAGGED')

INSERT INTO FlagTable (name) VALUES ('\DELETED')

INSERT INTO FlagTable (name) VALUES ('\SEEN')

INSERT INTO FlagTable (name) VALUES ('\DRAFT')

CREATE TABLE PartTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                        pimItemId BIGINT NOT NULL,
                        name TEXT NOT NULL,
                        data LONGBLOB,
                        datasize BIGINT NOT NULL,
                        version INTEGER DEFAULT 0,
                        external BOOL DEFAULT false)

CREATE UNIQUE INDEX PartTable_pimItemIdNameIndex ON PartTable (pimItemId,name)

CREATE INDEX PartTable_pimItemNameIndex ON PartTable (name)

CREATE TABLE CollectionAttributeTable (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                                       collectionId BIGINT NOT NULL,
                                       type LONGBLOB NOT NULL,
                                       value LONGBLOB)

CREATE INDEX CollectionAttributeTable_collectionIndex ON CollectionAttributeTable (collectionId)

CREATE TABLE PimItemFlagRelation (PimItem_id BIGINT NOT NULL,
                                  Flag_id BIGINT NOT NULL,
                                  PRIMARY KEY (PimItem_id, Flag_id))

CREATE TABLE CollectionMimeTypeRelation (Collection_id BIGINT NOT NULL,
                                         MimeType_id BIGINT NOT NULL,
                                         PRIMARY KEY (Collection_id, MimeType_id))

CREATE TABLE CollectionPimItemRelation (Collection_id BIGINT NOT NULL,
                                        PimItem_id BIGINT NOT NULL,
                                        PRIMARY KEY (Collection_id, PimItem_id))
